NAV Navigation
Shell HTTP JavaScript Ruby Python PHP Java Go

Floatplane REST API v3.9.9

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Homepage: https://jman012.github.io/FloatplaneAPIDocs

This document describes the REST API layer of https://www.floatplane.com, a content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group, where users can support their favorite creates via paid subscriptions in order to watch their video and livestream content in higher quality and other perks.

While this document contains stubs for all of the Floatplane APIs for this version, many are not filled out because they are related only to content creation, moderation, or administration and are not needed for regular use. These have “TODO” as the description, and are automatically removed before document generation. If you are viewing the “Trimmed” version of this document, they have been removed for brevity.

API Object Organization

API Flow

As of Floatplane version 3.5.1, these are the recommended endpoints to use for normal operations.

  1. Login
    1. /api/v3/auth/captcha/info - Get captcha information
    2. /api/v2/auth/login - Login with username, password, and optional captcha token
    3. /api/v2/auth/checkFor2faLogin - Optionally provide 2FA token to complete login
    4. /api/v2/auth/logout - Logout at a later point in time
  2. Home page
    1. /api/v3/user/subscriptions - Get the user’s active subscriptions
    2. /api/v3/content/creator/list - Using the subscriptions, show a home page with content from all subscriptions
      1. Supply all creator identifiers from the subscriptions
      2. This should be paginated
    3. /api/v2/creator/info - Also show a list of creators that the user can select
      1. Note that this can search and return multiple creators. The V3 version only works for a single creator at a time.
  3. Creator page
    1. /api/v3/creator/info - Get more details for the creator to display, including if livestreams are available
    2. /api/v3/content/creator - Show recent content by the creator
    3. /api/v2/plan/info - Show available plans the user can subscribe to for the creator
  4. Content page
    1. /api/v3/content/post - Show more detailed information about a piece of content, including text description, available attachments, metadata, interactions, etc.
    2. /api/v3/content/related - List some related content for the user to watch next
    3. /api/v3/comment - Load comments for the content for the user to read
      1. There are several more comment APIs to post, like, dislike, etc.
    4. /api/v2/user/ban/status - Determine if the user is banned from this creator
    5. /api/v3/content/{video|audio|picture|gallery} - Load the attached media for the post. This is usually video, but audio, pictures, and galleries are also available.
    6. /api/v2/cdn/delivery - For video and audio, this is required to get the information to stream or download the content in media players
  5. Livestream
    1. /api/v2/cdn/delivery - Using the type “livestream” to load the livestream media in a media player
    2. wss://chat.floatplane.com/sails.io/?... - To connect to the livestream chat over websocket. TODO: Map out the WebSocket API.
  6. User Profile
    1. /api/v3/user/self - Display username, name, email, and profile pictures

API Organization

The organization of APIs into categories in this document are reflected from the internal organization of the Floatplane website bundled code, from frontend.floatplane.com/{version}/vendor.js. This is in order to use the best organization from the original developers’ point of view.

For instance, Floatplane’s authentication endpoints are organized into Auth.v2.login(...), Auth.v2.logout(), and Auth.v3.getCaptchaInfo(). A limitation in OpenAPI is the lack of nested tagging/structure, so this document splits Auth into AuthV2 and AuthV3 to emulate the nested structure.

Notes

Note that the Floatplane API does support the use of ETags for retrieving some information, such as retrieving information about creators, users, etc. Expect an HTTP 304 if the content has not changed, and to re-use cached responses. This is useful to ease the strain on Floatplane’s API server.

The date-time format used by Floatplane API is not standard ISO 8601 format. The dates/times given by Floatplane include milliseconds. Depending on your code generator, you may need to override the date-time format to something similar to yyyy-MM-dd'T'HH:mm:ss.SSSZ, for both encoding and decoding.

Base URLs:

Web: James Linnell License: MIT

Authentication

When dealing with cookies in native applications (not via a website inside of a browser), please keep in mind that some languages/libraries may keep cookies across requests by default, and some may not. For instance, in Swift the URLSession.shared object with default configuration will automatically track and persist cookies across requests.

ActivationV2

Activate new user accounts and confirming activation via email.

confirmEmail

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/activation/email/confirm \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/activation/email/confirm HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/activation/email/confirm',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/activation/email/confirm',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/activation/email/confirm', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/activation/email/confirm', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/activation/email/confirm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/activation/email/confirm", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/activation/email/confirm

Confirm Email

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

requestActivationEmail

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/activation/email/request \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/activation/email/request HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/activation/email/request',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/activation/email/request',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/activation/email/request', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/activation/email/request', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/activation/email/request");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/activation/email/request", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/activation/email/request

Request Activation Email

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_CreatorAgreementV2

List and edit Creator<->Floatplane agreements.

listCreatorAgreement

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creatoragreement/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creatoragreement/list

List Creator Agreement

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorAgreement

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creatoragreement',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creatoragreement

Get Creator Agreement

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

editCreatorAgreement

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement/edit \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creatoragreement/edit',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creatoragreement/edit

Edit Creator Agreement

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_CreatorV2

Creator management for creating and editing creators.

getCreatorList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/list

Get Creator List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorDetails

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/

Get Creator Details

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getSubscriptionPlanList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/subscriptionplans/list

Get Subscription Plan List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

checkCreatorURLAvailable

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/urlname/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/urlname/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/urlname/availability',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/urlname/availability',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/urlname/availability', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/urlname/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/urlname/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/urlname/availability", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/urlname/availability

Check Creator Url Available

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorCategories

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/category/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/category/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/category/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/category/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/category/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/category/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/category/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/category/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/category/list

Get Creator Categories

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createCreator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/create

Create Creator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadCover

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/cover/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/cover/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/cover/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/cover/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/cover/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/cover/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/cover/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/cover/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/cover/upload

Upload Cover

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorsTitles

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/titles \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/titles HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/titles',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/titles',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/creator/titles', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/titles', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/titles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/titles", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/creator/titles

Get Creators Titles

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateCreator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/update

Update Creator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateCreatorSubscriptionPlan

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/subscriptionplan/update

Update Creator Subscription Plan

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadCard

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/card/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/card/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/card/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/card/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/card/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/card/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/card/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/card/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/card/upload

Upload Card

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadIcon

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/icon/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/icon/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/creator/icon/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/icon/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/creator/icon/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/icon/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/icon/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/icon/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/creator/icon/upload

Upload Icon

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_CreatorV3

Creator management for inviting creators.

getCreatorInviteCodeList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v3/creator/invite/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v3/creator/invite/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v3/creator/invite/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v3/creator/invite/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v3/creator/invite/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v3/creator/invite/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/creator/invite/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v3/creator/invite/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v3/creator/invite/list

Get Creator Invite Code List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createCreatorInviteCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/creator/invite/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/creator/invite/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v3/creator/invite/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v3/creator/invite/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v3/creator/invite/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/creator/invite/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/creator/invite/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/creator/invite/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v3/creator/invite/create

Create Creator Invite Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_DashboardV2

Dashboard for viewing, starting, and stopping jobs.

getJobStatus

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/dashboard/job/status/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/dashboard/job/status/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/status/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/dashboard/job/status/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/dashboard/job/status/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/dashboard/job/status/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/status/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/dashboard/job/status/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/dashboard/job/status/

Get Job Status

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

startJob

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/dashboard/job/start/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/dashboard/job/start/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/start/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/dashboard/job/start/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/dashboard/job/start/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/dashboard/job/start/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/start/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/dashboard/job/start/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/dashboard/job/start/

Start Job

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

stopJob

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/dashboard/job/stop/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/dashboard/job/stop/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/stop/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/dashboard/job/stop/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/dashboard/job/stop/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/dashboard/job/stop/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/stop/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/dashboard/job/stop/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/dashboard/job/stop/

Stop Job

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_FAQV2

Manage and edit FAQ entries. See https://www.floatplane.com/support

getFaqSectionsACP

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/section/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/section/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/section/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/section/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/section/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/section/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/section/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/section/list

Get Faq Sections

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateFaqSection

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/section/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/section/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/section/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/section/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/section/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/section/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/section/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/section/edit

Update Faq Section

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getFaqSectionDetails

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/section/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/section/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/section/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/section/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/section/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/section/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/section/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/section/

Get Faq Section Details

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getFaqArticleDetails

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/article/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/article/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/article/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/article/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/article/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/article/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/article/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/article/

Get Faq Article Details

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateFaqArticle

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/article/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/article/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/article/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/article/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/article/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/article/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/article/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/article/edit

Update Faq Article

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadFaqImage

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/image/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/image/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/image/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/image/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/image/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/image/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/image/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/image/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/image/upload

Upload Faq Image

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getFaqImages

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/image/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/image/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/image/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/image/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/image/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/image/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/image/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/image/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/image/list

Get Faq Images

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createFaqSection

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/section/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/section/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/section/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/section/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/section/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/section/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/section/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/section/create

Create Faq Section

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createFaqArticle

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/article/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/article/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/article/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/article/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/article/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/article/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/article/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/article/create

Create Faq Article

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_FeatureV2

Manage and edit features.

getFeatureConfigs

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/feature/configs \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/feature/configs HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/configs',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/feature/configs',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/feature/configs', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/feature/configs', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/configs");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/feature/configs", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/feature/configs

Get Feature Configs

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveFeature

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/feature/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/feature/save

Save Feature

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveFeatureDependencies

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/dependencies/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/dependencies/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/dependencies/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/dependencies/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/feature/dependencies/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/dependencies/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/dependencies/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/dependencies/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/feature/dependencies/save

Save Feature Dependencies

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveFeatureCategory

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/category/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/category/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/category/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/category/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/feature/category/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/category/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/category/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/category/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/feature/category/save

Save Feature Category

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveFeatureType

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/type/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/type/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/type/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/type/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/feature/type/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/type/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/type/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/type/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/feature/type/save

Save Feature Type

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveFeatureResolution

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/resolution/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/resolution/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/feature/resolution/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/resolution/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/feature/resolution/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/resolution/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/resolution/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/resolution/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/feature/resolution/save

Save Feature Resolution

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

AdministrationV2

Manage and edit moderators and global moderators. This entire section is deprecated.

addGlobalModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/global/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/global/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/administration/moderators/global/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/global/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/global/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/global/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/global/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/global/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/administration/moderators/global/add

Add Global Moderator

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeGlobalModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/global/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/global/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/administration/moderators/global/remove',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/global/remove',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/global/remove', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/global/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/global/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/global/remove", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/administration/moderators/global/remove

Remove Global Moderator

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/administration/moderators/remove',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/remove',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/remove', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/remove", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/administration/moderators/remove

Remove Moderator

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getModerator

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/administration/moderators/get/{user} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/administration/moderators/get/{user} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/administration/moderators/get/{user}',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/administration/moderators/get/{user}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/administration/moderators/get/{user}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/administration/moderators/get/{user}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/get/{user}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/administration/moderators/get/{user}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/administration/moderators/get/{user}

Get Moderator

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
user path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listModeratorsAdmin

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/administration/moderators/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/administration/moderators/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/administration/moderators/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/administration/moderators/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/administration/moderators/list

List Moderators

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_ModeratorV2

Manage and edit moderators and global moderators.

getModeratorList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/moderator/list

Get Moderator List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/moderator/create

Create Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateGlobalModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/update/global \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/update/global HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/update/global',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/update/global',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/update/global', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/update/global', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/update/global");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/update/global", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/moderator/update/global

Update Global Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeCreatorModeratorACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/creator/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/creator/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/remove',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/creator/remove',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/creator/remove', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/creator/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/creator/remove", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/moderator/creator/remove

Remove Creator Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

addCreatorModeratorACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/creator/add/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/creator/add/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/add/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/creator/add/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/creator/add/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/creator/add/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/add/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/creator/add/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/moderator/creator/add/

Add Creator Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getModeratorAvailableCreators

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/creator/available \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/creator/available HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/available',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/creator/available',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/creator/available', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/creator/available', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/available");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/creator/available", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/moderator/creator/available

Get Moderator Available Creators

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getModeratorCreators

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/creator/list/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/creator/list/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/list/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/creator/list/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/creator/list/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/creator/list/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/list/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/creator/list/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/moderator/creator/list/

Get Moderator Creators

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_UserV2

Manage and edit users globally by administrators.

getUserList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/list

Get User List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserDetails

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/

Get User Details

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

searchUserForModeration

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/list/notmoderator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/list/notmoderator HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/list/notmoderator',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/list/notmoderator',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/list/notmoderator', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/list/notmoderator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/list/notmoderator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/list/notmoderator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/list/notmoderator

Search User For Moderation

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

findUser

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/find \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/find HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/find',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/find',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/find', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/find', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/find");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/find", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/find

Find User

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createAdmin

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/admin/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/admin/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/admin/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/admin/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/admin/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/admin/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/admin/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/admin/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/admin/create

Create Admin

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

addUserSubscriptions

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/subscription/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/subscription/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/subscription/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/subscription/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/subscription/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/subscription/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/subscription/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/subscription/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/subscription/add

Add User Subscriptions

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

checkUsernameAvailable

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/username/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/username/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/username/availability',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/username/availability',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/username/availability', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/username/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/username/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/username/availability", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/username/availability

Check Username Available

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

checkEmailAvailable

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/email/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/email/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/email/availability',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/email/availability',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/email/availability', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/email/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/email/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/email/availability", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/email/availability

Check Email Available

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadAvatarACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/avatar/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/avatar/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/avatar/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/avatar/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/avatar/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/avatar/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/avatar/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/avatar/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/avatar/upload

Upload Avatar

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateUser

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/edit

Update User

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserSubscriptions

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/usersubscription/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/usersubscription/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/usersubscription/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/usersubscription/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/usersubscription/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/usersubscription/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/usersubscription/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/usersubscription/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/usersubscription/list

Get User Subscriptions

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeUserSubscription

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/usersubscription/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/usersubscription/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/usersubscription/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/usersubscription/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/usersubscription/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/usersubscription/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/usersubscription/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/usersubscription/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/usersubscription/delete

Remove User Subscription

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateAdministrator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/administrator/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/administrator/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/administrator/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/administrator/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/administrator/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/administrator/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/administrator/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/administrator/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/administrator/update

Update Administrator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deleteUser

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/delete

Delete User

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

signupACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v2/user/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v2/user/create

Signup

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listUserInvoices

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/payment/invoice/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/payment/invoice/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/payment/invoice/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/payment/invoice/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/payment/invoice/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/payment/invoice/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/payment/invoice/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/payment/invoice/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/payment/invoice/list

List User Invoices

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getPaymentProcessorData

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/payment/processor/data \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/payment/processor/data HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v2/user/payment/processor/data',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/payment/processor/data',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v2/user/payment/processor/data', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/payment/processor/data', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/payment/processor/data");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/payment/processor/data", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v2/user/payment/processor/data

Get Payment Processor Data

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_UserV3

Manage and edit users globally by administrators.

scheduleDeletionACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v3/user/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v3/user/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v3/user/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/user/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v3/user/delete

Schedule Deletion

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unscheduleDeletionACP

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/user/undelete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/user/undelete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v3/user/undelete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/acp/v3/user/undelete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/acp/v3/user/undelete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/user/undelete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/undelete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/user/undelete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/acp/v3/user/undelete

Unschedule Deletion

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getSubjectAccessData

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v3/user/sar \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v3/user/sar HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/acp/v3/user/sar',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/acp/v3/user/sar',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/acp/v3/user/sar', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v3/user/sar', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/sar");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v3/user/sar", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/acp/v3/user/sar

Get Subject Access Data

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

AuthV2

Sign up, login, 2FA, and logout. Additionally, login spoofing for administrators.

login

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/login HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"password": "string",
"captchaToken": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/auth/login',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/login',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/login', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/login', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/login");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/login", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/login

Login

Login to Floatplane with the provided username and password, retrieving the authentication/authorization cookie from the response for subsequent requests.

Body parameter

{
"username": "string",
"password": "string",
"captchaToken": "string"
}

Parameters

Name In Type Required Description
body body AuthLoginV2Request true none

Example responses

200 Response

{
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"needs2FA": false
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Returns the header and information about the logged-in user, including the id, username, and profile image. AuthLoginV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The login attempt failed, either due to a bad username or password. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Headers

Status Header Type Format Description
200 Set-Cookie string Contains the cookie used in subsequent authenticated requests.

logout

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/logout \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v2/auth/logout HTTP/1.1
Host: www.floatplane.com
Accept: text/plain

const headers = {
'Accept':'text/plain'
};

fetch('https://www.floatplane.com/api/v2/auth/logout',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'text/plain'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/logout',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'text/plain'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/logout', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'text/plain',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/logout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/logout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"text/plain"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/logout", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/logout

Logout

Log out of Floatplane, invalidating the authentication/authorization cookie.

Example responses

200 Response

"OK"

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK string
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Headers

Status Header Type Format Description
200 Set-Cookie string Obtain a new authentication/authorization cookie after logging out. This new cookie will not be authenticated to perform subsequent requests.

beginSpoofing

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/spoof/begin \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/spoof/begin HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/auth/spoof/begin',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/spoof/begin',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/spoof/begin', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/spoof/begin', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/spoof/begin");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/spoof/begin", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/spoof/begin

Begin Spoofing

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

endSpoofing

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/spoof/end \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/spoof/end HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/auth/spoof/end',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/spoof/end',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/spoof/end', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/spoof/end', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/spoof/end");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/spoof/end", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/spoof/end

End Spoofing

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

signup

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/signup \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/signup HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/auth/signup',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/signup',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/signup', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/signup', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/signup");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/signup", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/signup

Signup

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

checkFor2faLogin

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/checkFor2faLogin \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/checkFor2faLogin HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"token": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/auth/checkFor2faLogin',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/auth/checkFor2faLogin',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/auth/checkFor2faLogin', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/checkFor2faLogin', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/checkFor2faLogin");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/checkFor2faLogin", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/auth/checkFor2faLogin

Check For 2FA Login

Complete the login process if a two-factor authentication token is required from the beginning of the login process.

Body parameter

{
"token": "string"
}

Parameters

Name In Type Required Description
body body CheckFor2faLoginRequest true none

Example responses

200 Response

{
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"needs2FA": false
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Returns the header and information about the logged-in user, including the id, username, and profile image. AuthLoginV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The login attempt failed, either due to a bad username or password. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Headers

Status Header Type Format Description
200 Set-Cookie string Contains the cookie used in subsequent authenticated requests.

AuthV3

Captchas information.

getCaptchaInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/auth/captcha/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/auth/captcha/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/auth/captcha/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/auth/captcha/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/auth/captcha/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/auth/captcha/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/auth/captcha/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/auth/captcha/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/auth/captcha/info

Get Captcha Info

Gets the site keys used for Google Recaptcha V2 and V3. These are useful when providing a captcha token when logging in or signing up.

Example responses

200 Response

{
"v2": {
"variants": {
"android": {
"siteKey": "..."
},
"checkbox": {
"siteKey": "..."
},
"invisible": {
"siteKey": "..."
}
}
},
"v3": {
"variants": {
"invisible": {
"siteKey": "..."
}
}
}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK GetCaptchaInfoResponse
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

BrainTreeV2

BrainTree payment integration

generateClientToken

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/braintree/token \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/braintree/token HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/braintree/token',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/braintree/token',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/braintree/token', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/braintree/token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/braintree/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/braintree/token", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/braintree/token

Generate Client Token

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CDNV2

Content Delivery mechanisms for Floatplane media.

getDeliveryInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/cdn/delivery?type=vod \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/cdn/delivery?type=vod HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/cdn/delivery?type=vod',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/cdn/delivery',
params: {
'type' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/cdn/delivery', params={
'type': 'vod'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/cdn/delivery', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/cdn/delivery?type=vod");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/cdn/delivery", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/cdn/delivery

Get Delivery Info

Given an video/audio attachment identifier, retrieves the information necessary to play, download, or livestream the video/audio at various quality levels.

Parameters

Name In Type Required Description
type query string true Used to determine which kind of retrieval method is requested for the video.
guid query string false The GUID of the attachment for a post, retrievable from the videoAttachments or audioAttachments object. Required when type is vod, aod, or download. Note: either this or creator must be supplied.
creator query string false The GUID of the creator for a livestream, retrievable from CreatorModelV2.id. Required when type is live. Note: either this or guid must be supplied.

Detailed descriptions

type: Used to determine which kind of retrieval method is requested for the video.

Enumerated Values

Parameter Value
type vod
type aod
type live
type download

Example responses

200 Response

{
"cdn": "https://cdn-vod-drm2.floatplane.com",
"strategy": "cdn",
"resource": {
"uri": "/Videos/TViGzkuIic/{qualityLevels}.mp4/chunk.m3u8?token={qualityLevelParams.token}",
"data": {
"qualityLevels": [
{
"name": "360",
"width": 640,
"height": 360,
"label": "360p",
"order": 0
},
{
"name": "480",
"width": 854,
"height": 480,
"label": "480p",
"order": 1
},
{
"name": "720",
"width": 1280,
"height": 720,
"label": "720p",
"order": 2
},
{
"name": "1080",
"width": 2160,
"height": 1080,
"label": "1080p",
"order": 4
}
],
"qualityLevelParams": {
"360": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzM2MC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.uaLzZ4wSc0jrYbjkdhuF4_UY92iWQsq2efrWUutYUvQ"
},
"480": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzQ4MC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.O6PHCJKcLW7ohuKj6UcMa8QGoN-vZr6xTtfXsUMRki0"
},
"720": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzcyMC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.lbOTTBXBjA-i9gBzm8ydFQ8fa8q07Z2vaLsYMKUp4Ik"
},
"1080": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzEwODAubXA0L2NodW5rLm0zdTgiLCJ1c2VySWQiOiIwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1NjciLCJpYXQiOjE2MzM3OTczMTEsImV4cCI6MTYzMzgxODkxMX0.E-bw_gnUzKUpYeL2l-kTmj5CbwmDb519ohjf5LlLyQg"
}
}
}
}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Information on how to stream or download the requested video from the CDN in various levels of quality. CdnDeliveryV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

ConnectedAccountsV2

3rd party account management, such as Discord or LTT Forums.

getAccountConnect

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/{site} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/{site} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/{site}',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/connect/{site}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/connect/{site}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/{site}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/{site}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/{site}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/connect/{site}

Connect

TODO

Parameters

Name In Type Required Description
site path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

callback

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/{site}/callback \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/{site}/callback HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/{site}/callback',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/connect/{site}/callback',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/connect/{site}/callback', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/{site}/callback', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/{site}/callback");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/{site}/callback", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/connect/{site}/callback

Callback

TODO

Parameters

Name In Type Required Description
site path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

complete

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/complete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/connect/complete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/connect/complete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/complete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/connect/complete

Complete

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

refresh

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/refresh \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/refresh HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/refresh',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/connect/refresh',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/connect/refresh', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/refresh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/refresh", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/connect/refresh

Refresh

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

dissociate

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/dissociate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/dissociate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/dissociate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/connect/dissociate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/connect/dissociate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/dissociate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/dissociate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/dissociate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/connect/dissociate

Dissociate

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listConnections

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/connect/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/connect/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/connect/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/connect/list

List Connections

List the available 3rd party accounts for the user’s profile.

Example responses

200 Response

[
{
"key": "ltt",
"name": "LinusTechTips",
"enabled": true,
"iconWhite": "/images/connections/ltt/white@2x.png",
"connectedAccount": null,
"connected": false,
"isAccountProvider": false
},
{
"key": "discord",
"name": "Discord",
"enabled": true,
"iconWhite": "/images/connections/discord/white@2x.png",
"connectedAccount": {
"id": "9a8a4140fdd2b0c15b54333a",
"remoteUserId": "012345678912345678",
"remoteUserName": "my_username#2673",
"data": {
"canJoinGuilds": true
}
},
"connected": true,
"isAccountProvider": false
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Returns the list of connected and available accounts. Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [ConnectedAccountModel] false none none
» key string true none Unique identifier for the account type.
» name string true none Display-friendly label for the key.
» enabled boolean true none Determines if the system allows this account to be connected to.
» iconWhite string true none none
» connectedAccount object true none none
»» id string true none none
»» remoteUserId string true none none
»» remoteUserName string true none none
»» data object true none none
»»» canJoinGuilds boolean false none none
» connected boolean true none If true, the user is connected and the connectedAccount will have data about the account.
» isAccountProvider boolean true none none

CreatorAdministrationV2

Creator-specific moderator management.

addCreatorModeratorAdmin

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/administration/moderators/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/administration/moderators/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creator/administration/moderators/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creator/administration/moderators/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/administration/moderators/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/administration/moderators/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creator/administration/moderators/add

Add Creator Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorV2

Get and discover creators on the platform. Creator invitation and profile management.

getInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/info?creatorGUID=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/info?creatorGUID=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/info?creatorGUID=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/info',
params: {
'creatorGUID' => 'array[string]'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/info', params={
'creatorGUID': [
"string"
]
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info?creatorGUID=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/info

Get Info

Retrieve detailed information on one or more creators on Floatplane.

Parameters

Name In Type Required Description
creatorGUID query array[string] true The GUID identifer(s) of the creator(s) to be retrieved.

Example responses

200 Response

[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - The creators are found from their identifiers and returned in an array Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CreatorModelV2] false none none
» id string true none none
» owner string true none none
» title string true none none
» urlname string true none none
» description string true none none
» about string true none none
» category string true none none
» cover ImageModel false none none
»» width integer true none none
»» height integer true none none
»» path string(uri) true none none
»» childImages [ChildImageModel] false none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
» icon ImageModel true none none
» liveStream LiveStreamModel false none none
»» id string true none none
»» title string true none none
»» description string true none none
»» thumbnail ImageModel false none none
»» owner string true none none
»» streamPath string true none none
»» offline object true none none
»»» title string false none none
»»» description string false none none
»»» thumbnail ImageModel false none none
» subscriptionPlans [object] false none none
» discoverable boolean true none none
» subscriberCountDisplay string true none none
» incomeDisplay boolean true none none

getCreatorInfoByName

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/named?creatorURL=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/named?creatorURL=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/named?creatorURL=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/named',
params: {
'creatorURL' => 'array[string]'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/named', params={
'creatorURL': [
"string"
]
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/named?creatorURL=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/named", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/named

Get Info By Name

Retrieve detailed information on one or more creators on Floatplane.

Parameters

Name In Type Required Description
creatorURL query array[string] true The string identifer(s) of the creator(s) to be retrieved.

Example responses

200 Response

[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"twitter": "https://twitter.com/linustech",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips"
},
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
]
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [allOf] false none none

allOf

Name Type Required Restrictions Description
» anonymous CreatorModelV2 false none none
»» id string true none none
»» owner string true none none
»» title string true none none
»» urlname string true none none
»» description string true none none
»» about string true none none
»» category string true none none
»» cover ImageModel false none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
»» icon ImageModel true none none
»» liveStream LiveStreamModel false none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» thumbnail ImageModel false none none
»»» owner string true none none
»»» streamPath string true none none
»»» offline object true none none
»»»» title string false none none
»»»» description string false none none
»»»» thumbnail ImageModel false none none
»» subscriptionPlans [object] false none none
»» discoverable boolean true none none
»» subscriberCountDisplay string true none none
»» incomeDisplay boolean true none none

and

Name Type Required Restrictions Description
» anonymous object false none none
»» socialLinks SocialLinksModel true none none
»»» additionalProperties string(uri) false none none
»» discordServers [DiscordServerModel] true none none
»»» id string true none none
»»» guildName string true none none
»»» guildIcon string true none none
»»» inviteLink string(uri) true none none
»»» inviteMode string true none none

listVideos

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/videos \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/videos HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/videos',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/videos',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/videos', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/videos', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/videos");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/videos", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/videos

List Videos

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listPlaylists

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/playlists \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/playlists HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/playlists',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/playlists',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/playlists', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/playlists', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/playlists");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/playlists", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/playlists

List Playlists

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listCreators

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/list

List Creators

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

discoverCreatorsV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/discover \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/discover HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/discover',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/discover',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/discover', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/discover', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/discover");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/discover", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/discover

Discover Creators

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listCreatorCategoriesV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorcategory/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorcategory/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creatorcategory/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creatorcategory/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creatorcategory/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorcategory/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorcategory/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorcategory/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creatorcategory/list

List Creator Categories

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/social/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/social/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/social/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creator/social/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creator/social/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/social/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/social/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/social/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creator/social/update

Update Social Links

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/social/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/social/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/social/get',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/social/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/social/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/social/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/social/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/social/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/social/get

Get Social Links

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

updateChannelImage

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/image/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/image/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/image/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creator/image/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creator/image/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/image/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/image/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/image/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creator/image/update

Update Channel Image

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateChannelInfo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/info/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/info/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/info/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creator/info/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creator/info/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/info/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/info/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creator/info/update

Update Channel Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getChannelInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/info/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/info/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/info/get',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/info/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/info/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/info/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/info/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/info/get

Get Channel Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorV3

Get and discover creators on the platform. Creator invitation and profile management.

getCreator

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/info?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/info?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/info?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/info',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/info', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/info?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/info

Get Creator

Retrieve detailed information about a specific creator.

Parameters

Name In Type Required Description
id query string true The GUID of the creator being searched.

Example responses

200 Response

{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips",
"twitter": "https://twitter.com/linustech"
}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Creator information returned CreatorModelV3
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getCreators

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/list?search=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/list?search=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/list?search=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/list',
params: {
'search' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/list', params={
'search': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/list?search=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/list

Get Creators

Retrieve and search for all creators on Floatplane. Useful for creator discovery and filtering.

Parameters

Name In Type Required Description
search query string true Optional search string for finding particular creators on the platform.

Example responses

200 Response

[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"twitter": "https://twitter.com/linustech",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips"
}
},
{
"id": "5ae0f8114336369a2c3619b6",
"owner": "5ae0f8114336369a2c3619b4",
"title": "TechDeals",
"urlname": "tech_deals",
"description": "Welcome to Tech Deals on Floatplane! Having nothing to do with actual floatplanes since 2016, we are proud to be part of the launch of Floatplane! We make videos about technology!",
"about": "Welcome to Tech Deals on Floatplane! Having nothing to do with actual floatplanes since 2016, we are proud to be part of the launch of Floatplane! We make videos about technology!",
"category": {
"title": "Technology"
},
"cover": {
"width": 1923,
"height": 502,
"path": "https://pbs.floatplane.com/cover_images/5ae0f8114336369a2c3619b6/264955378957772_1600880420171.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/5ae0f8114336369a2c3619b6/264955378957772_1600880420171_1245x325.jpeg"
}
]
},
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853_250x250.jpeg"
}
]
},
"liveStream": {
"id": "5c3d7ec606f1be114ca1e59c",
"title": "CES 2020 - Bonus Coverage for Floatplane Subs",
"description": "Welcome to the Tech Deals stream – this should be fun!",
"thumbnail": {
"width": 1199,
"height": 674,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c3d7ec606f1be114ca1e59c/973032281888832_1560301350562.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c3d7ec606f1be114ca1e59c/973032281888832_1560301350562_400x225.jpeg"
}
]
},
"owner": "5ae0f8114336369a2c3619b6",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.kdUMaxvL2eyW.m3u8",
"offline": {
"title": "We're offline at the moment. Please check back later!",
"description": "We're offline at the moment. Please check back later!",
"thumbnail": null
}
},
"subscriptionPlans": [
{
"id": "5d506f2f7c7e6afa2ef1e246",
"title": "1080p Plan - Videos on Demand + Live Streams",
"description": "This plan gives you access to all published videos at up to 1080p detail. You also get access to 1080p live streams exclusive to Floatplane. This also grants you access to the private channels on the Tech Deals Discord, link your Floatplane account to Discord to be automatically upgraded.",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e1710272aae3bc9cabdf505",
"title": "4K - All Access Plan",
"description": "This plan gives you access to all published videos at up to 4K detail. You also get access to 1080p live streams exclusive to Floatplane. This also grants you access to the private channels on the Tech Deals Discord, link your Floatplane account to Discord to be automatically upgraded. BONUS - This plan allows you to download the videos in high quality for off-line viewing! This is a great way to increase your level of support if you really love our content!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "all",
"incomeDisplay": false,
"socialLinks": {
"youtube": "https://www.youtube.com/techdeals",
"twitter": "https://twitter.com/TechDeals_16"
}
},
{
"id": "5d2fd26df33b8d14fc5ff48d",
"owner": "5c4280ff4160af3309527f37",
"title": "EposVox",
"urlname": "eposvox",
"description": "The ORIGINAL content creator and streaming focused tech education channel. EposVox, the Stream Professor, is here to give you how to videos, tutorials, tips and tricks, as well as gear reviews and benchmarks to get the most out of your tech experience. \nWhile content creation and streaming (especially with software like OBS Studio and XSplit) are primary focuses of content, ultimately the goal is to make technology easier and more fun to use. Education is number one, entertainment is sometimes given.\nThe analog tech nostalgia is just inherent to being a 90s kid.\n\n📬 Shipping: \nP.O. Box 459 \nJeffersonville, IN 47131",
"about": "The ORIGINAL content creator and streaming focused tech education channel. EposVox, the Stream Professor, is here to give you how to videos, tutorials, tips and tricks, as well as gear reviews and benchmarks to get the most out of your tech experience. \nWhile content creation and streaming (especially with software like OBS Studio and XSplit) are primary focuses of content, ultimately the goal is to make technology easier and more fun to use. Education is number one, entertainment is sometimes given.\nThe analog tech nostalgia is just inherent to being a 90s kid.\n\n📬 Shipping: \nP.O. Box 459 \nJeffersonville, IN 47131",
"category": {
"title": "Technology"
},
"cover": {
"width": 1992,
"height": 520,
"path": "https://pbs.floatplane.com/cover_images/5d2fd26df33b8d14fc5ff48d/879571788095471_1563437947857.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/5d2fd26df33b8d14fc5ff48d/879571788095471_1563437947857_1245x325.jpeg"
}
]
},
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335_250x250.jpeg"
}
]
},
"liveStream": {
"id": "5d2fd230f33b8d14fc5ff48c",
"title": "EposVox Live Testing",
"description": "Not much to see here... yet!",
"thumbnail": null,
"owner": "5d2fd26df33b8d14fc5ff48d",
"streamPath": "/live_abr/eposvox",
"offline": {
"title": null,
"description": "Not much to see here... yet!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461.jpeg",
"childImages": [
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461_1200x675.jpeg"
},
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461_400x225.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d32780027050d0c9a0b10aa",
"title": "FLOATPLANE FLOATBOATS (1080p)",
"description": "Primary Floatplane sub. Help me build the best tech education platform on the internet and keep diving into crazy nerdy details no one else covers. This tier gets you all of the currently-available video playback, downloads and live streaming. BTS Vlogs & Early Access, too! All up to 1080p quality.\nVideos will be given as early access as much as a month (though usually just a week) before YouTube, when available.",
"price": "5.00",
"priceYearly": null,
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5d48aaee6825b5780db93c80",
"title": "Super Sub (4k)",
"description": "You get... EVERYTHING! Future features will expand here, but for now, you get everything already available, and this is just here for those who want to support a little more :)",
"price": "10.00",
"priceYearly": null,
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "hide",
"incomeDisplay": false,
"socialLinks": {
"youtube": "https://www.youtube.com/eposvox",
"instagram": "https://www.instagram.com/eposvox/",
"website": "https://eposvox.com",
"facebook": "https://www.facebook.com/eposvoxofficial",
"twitter": "https://twitter.com/eposvox"
}
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Creators returned Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CreatorModelV3] false none none
» id string true none none
» owner string true none none
» title string true none none
» urlname string true none none
» description string true none none
» about string true none none
» category object true none none
»» title string true none none
» cover ImageModel true none none
»» width integer true none none
»» height integer true none none
»» path string(uri) true none none
»» childImages [ChildImageModel] false none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
» icon ImageModel true none none
» liveStream LiveStreamModel false none none
»» id string true none none
»» title string true none none
»» description string true none none
»» thumbnail ImageModel false none none
»» owner string true none none
»» streamPath string true none none
»» offline object true none none
»»» title string false none none
»»» description string false none none
»»» thumbnail ImageModel false none none
» subscriptionPlans [SubscriptionPlanModel] true none none
»» id string true none none
»» title string true none none
»» description string true none none
»» price string false none none
»» priceYearly string false none none
»» currency string true none none
»» logo string false none none
»» interval string true none none
»» featured boolean true none none
»» allowGrandfatheredAccess boolean false none none
»» discordServers [DiscordServerModel] true none none
»»» id string true none none
»»» guildName string true none none
»»» guildIcon string true none none
»»» inviteLink string(uri) true none none
»»» inviteMode string true none none
»» discordRoles [DiscordRoleModel] true none none
»»» server string true none none
»»» roleName string true none none
» discoverable boolean true none none
» subscriberCountDisplay string true none none
» incomeDisplay boolean true none none
» socialLinks SocialLinksModel true none none
»» additionalProperties string(uri) false none none

getCreatorByName

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/named \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/named HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/named',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/named',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/named', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/named");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/named", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/named

Get Creator By Name

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

discoverCreatorsV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/discover \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/discover HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/discover',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/discover',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/discover', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/discover', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/discover");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/discover", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/discover

Discover Creators

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listCreatorCategoriesV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/category/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/category/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/category/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/category/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/category/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/category/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/category/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/category/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/category/list

List Creator Categories

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

bindCreatorInviteCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/creator/invite/bind \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/creator/invite/bind HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/invite/bind',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/creator/invite/bind',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/creator/invite/bind', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/creator/invite/bind', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/bind");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/creator/invite/bind", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/creator/invite/bind

Bind Creator Invite Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorInviteCodeInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/invite/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/invite/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/invite/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/creator/invite/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/creator/invite/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/invite/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/invite/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/creator/invite/info

Get Creator Invite Code Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

claimCreatorInviteCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/creator/invite/claim \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/creator/invite/claim HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/creator/invite/claim',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/creator/invite/claim',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/creator/invite/claim', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/creator/invite/claim', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/claim");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/creator/invite/claim", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/creator/invite/claim

Claim Creator Invite Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorAgreementV2

Get and agree to Creator<->Floatplane agreements.

getAgreement

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/api/creator/agreement/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/api/creator/agreement/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/api/creator/agreement/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/api/creator/agreement/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/api/creator/agreement/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/api/creator/agreement/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/api/creator/agreement/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/api/creator/agreement/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/api/creator/agreement/

Get Agreement

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

confirmAgreement

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/api/creator/agreement/confirm \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/api/creator/agreement/confirm HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/api/creator/agreement/confirm',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/api/creator/agreement/confirm',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/api/creator/agreement/confirm', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/api/creator/agreement/confirm', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/api/creator/agreement/confirm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/api/creator/agreement/confirm", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/api/creator/agreement/confirm

Confirm Agreement

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorPlanFeatureLevelsV2

Manage features for creator subscription plans.

listCreatorPlanFeatureLevels

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creatorplanfeaturelevel/list

List Creator Plan Feature Levels

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

calculateCreatorPlanFeatureCosts

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creatorplanfeaturelevel/cost

Calculate Creator Plan Feature Costs

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

planFeatureLevels

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/plan/feature/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/plan/feature/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/plan/feature/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/plan/feature/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/plan/feature/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/plan/feature/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/feature/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/plan/feature/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/plan/feature/list

Plan Feature Levels

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorSubscriptionPlanV2

Manage creator subscription plans.

publishSubscriptionPlan

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/publish \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/publish HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/plan/publish',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/plan/publish',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/plan/publish', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/publish', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/publish");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/publish", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/plan/publish

Publish Subscription Plan

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateSubscriptionPlans

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/plan/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/plan/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/plan/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/plan/update

Update Subscription Plans

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listSubscriptionPlans

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/plan/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/plan/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/plan/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/plan/list

List Subscription Plans

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCreatorSubInfoPublic

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/plan/info?creatorId=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/plan/info?creatorId=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/plan/info?creatorId=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/plan/info',
params: {
'creatorId' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/plan/info', params={
'creatorId': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/plan/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/info?creatorId=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/plan/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/plan/info

Get Creator Sub Info Public

Retrieve detailed information about a creator’s subscription plans and their subscriber count.

Parameters

Name In Type Required Description
creatorId query string true The GUID for the creator being search.

Example responses

200 Response

{
"totalSubscriberCount": 19256,
"totalIncome": null,
"plans": [
{
"discordRoles": [
{
"server": "5baa8838d9f3aa0a83acd429",
"roleName": "Floatplane.com Pilot"
},
{
"server": "5e34cd9a9dbb744872192895",
"roleName": "Pilot"
}
],
"createdAt": "2019-08-06T00:56:16.180Z",
"updatedAt": "2021-09-09T16:55:02.620Z",
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"enabled": true,
"featured": true,
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"paymentID": 19,
"currency": "usd",
"trialPeriod": 0,
"allowGrandfatheredAccess": false,
"logo": null,
"creator": "59f94c0bdd241b70349eb72b",
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
],
"userIsSubscribed": true,
"userIsGrandfathered": false,
"enabledGlobal": true,
"interval": "month"
},
{
"discordRoles": [
{
"server": "5baa8838d9f3aa0a83acd429",
"roleName": "Floatplane.com Pilot"
},
{
"server": "5e34cd9a9dbb744872192895",
"roleName": "Pilot"
}
],
"createdAt": "2019-12-31T19:51:08.009Z",
"updatedAt": "2020-11-07T01:33:31.617Z",
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"enabled": true,
"featured": false,
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"paymentID": 66,
"currency": "usd",
"trialPeriod": 0,
"allowGrandfatheredAccess": false,
"logo": null,
"creator": "59f94c0bdd241b70349eb72b",
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
],
"userIsSubscribed": false,
"userIsGrandfathered": false,
"enabledGlobal": true,
"interval": "month"
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Information about the plans for the creator PlanInfoV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

CreatorSubscriptionPlanV3

Manage creator subscription plans.

getPlansForContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/plan/content \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/plan/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/plan/content',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/plan/content',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/plan/content', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/plan/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/plan/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/plan/content", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/plan/content

Get Plans For Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

DiscordBotV2

Manage Discord bots.

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/link \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/link HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/link',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/link',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/discord/bot/link', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/link', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/link");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/link", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/discord/bot/link

Link

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

linkCallback

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/link/callback \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/link/callback HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/link/callback',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/link/callback',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/discord/bot/link/callback', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/link/callback', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/link/callback");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/link/callback", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/discord/bot/link/callback

Link Callback

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listDiscordBotConnections

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/discord/bot/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/discord/bot/list

List Connections

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/bot/unlink \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/bot/unlink HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/unlink',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/discord/bot/unlink',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/discord/bot/unlink', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/bot/unlink', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/unlink");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/bot/unlink", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/discord/bot/unlink

Unlink

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getDiscordBotInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/discord/bot/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/discord/bot/info

Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/invite/generate \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/invite/generate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/invite/generate',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/invite/generate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/discord/bot/invite/generate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/invite/generate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/invite/generate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/invite/generate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/discord/bot/invite/generate

Generate Invite Link

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/bot/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/bot/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/bot/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/discord/bot/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/discord/bot/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/bot/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/bot/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/discord/bot/update

Update Link

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

joinDiscordServers

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/server/join \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/server/join HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/discord/server/join',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/discord/server/join',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/discord/server/join', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/server/join', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/server/join");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/server/join", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/discord/server/join

Join Discord Servers

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

EdgesV2

Get edge server information for media playback.

getEdges

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/edges \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/edges HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/edges',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/edges',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/edges', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/edges', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/edges");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/edges", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/edges

Get Edges

Retrieve a list of edge servers from which to stream or download videos. This is deprecated, and using the CDN endpoint is recommended as a replacement.

Example responses

200 Response

{
"edges": [
{
"hostname": "edge01-na.floatplane.com",
"queryPort": 8090,
"bandwidth": 1000000000,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
},
{
"hostname": "edge02-na.floatplane.com",
"queryPort": 8090,
"bandwidth": 500000000,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
},
{
"hostname": "edge01-eu.floatplane.com",
"queryPort": 8090,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "FR",
"regionCode": "A",
"latitude": 48.5873,
"longitude": 7.79821
}
},
{
"hostname": "edge01-au.floatplane.com",
"queryPort": 8090,
"bandwidth": 250000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "AU",
"regionCode": "NSW",
"latitude": -33.8401,
"longitude": 151.209
}
},
{
"hostname": "edge1-na-south.floatplane.com",
"queryPort": 0,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "US",
"regionCode": "FL",
"latitude": 25.8124,
"longitude": -80.2401
}
},
{
"hostname": "edge1-na-sv.floatplane.com",
"queryPort": 0,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "US",
"regionCode": "CA",
"latitude": 37.3387,
"longitude": -121.8914
}
},
{
"hostname": "edge03-na.floatplane.com",
"queryPort": 0,
"bandwidth": 3000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
}
],
"client": {}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK EdgesModel
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getVideoUrl

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/url \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/url HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/url',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/url',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/url', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/url', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/url");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/url", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/url

Get Video Url

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

FAQV2

Get FAQs.

getFaqSections

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/faq/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/faq/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/faq/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/faq/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/faq/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/faq/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/faq/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/faq/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/faq/list

Get Faq Sections

Retrieve a list of FAQ sections to display to the user. Each section contains one or more FAQ items. This is normally accessible from https://www.floatplane.com/support. Note that the answers to the FAQs will contain HTML.

Example responses

200 Response

[
{
"faqs": [
{
"createdAt": "2019-10-03T18:45:49.157Z",
"updatedAt": "2019-12-19T22:06:01.843Z",
"id": "5d9641ddbced315cc7d9135f",
"question": "How do you get the PewPew emote? ",
"answer": "<p><span style=\"background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);\">The PewPew emote was as an account reward for users who had succesfully set up a payment method on Floatplane.com before January 1st 2019.</span></p>",
"status": "public",
"link": "g-pewpew-emote",
"order": 1,
"faqSection": "5d9641d0b3e3285cfffe44a9"
}
],
"createdAt": "2019-10-03T18:45:36.840Z",
"updatedAt": "2019-12-19T22:08:50.481Z",
"id": "5d9641d0b3e3285cfffe44a9",
"name": "General",
"description": "For general questions about Floatplane",
"status": "public",
"order": 1
},
{
"faqs": [
{
"createdAt": "2019-10-03T18:26:28.413Z",
"updatedAt": "2020-01-28T03:23:15.918Z",
"id": "5d963d54221c575ce366b7e7",
"question": "Can you upgrade me to the LTT supporter (1080p) subscription? ",
"answer": "<p>At this time there is no difference between the two channels in regards to features that are unlocked. The only difference between the two is the price.</p>",
"status": "public",
"link": "sub-u-payment",
"order": 1,
"faqSection": "5d8d1be612c2535c9dc067d1"
}
],
"createdAt": "2019-09-26T20:13:26.431Z",
"updatedAt": "2020-01-28T03:24:33.443Z",
"id": "5d8d1be612c2535c9dc067d1",
"name": "Subscription and Payment ",
"description": "Life isn't always about money but this section is. If you have a payment or subscription issue look here. ",
"status": "public",
"order": 2
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [FaqSectionModel] false none none
» faqs [object] true none none
»» createdAt string(date-time) true none none
»» updatedAt string(date-time)¦null true none none
»» id string true none none
»» question string true none none
»» answer string true none This field may contain HTML that should be rendered.
»» status string true none none
»» link string true none none
»» order number true none none
»» faqSection string true none none
» createdAt string(date-time) true none none
» updatedAt string(date-time)¦null true none none
» id string true none none
» name string true none none
» description string true none none
» status string true none none
» order number true none none

Enumerated Values

Property Value
status public
status public

IframeV2

Get video iframe data.

getVideoPlayer

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/get/player/{guid} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/get/player/{guid} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/get/player/{guid}',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/get/player/{guid}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/get/player/{guid}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/get/player/{guid}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/get/player/{guid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/get/player/{guid}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/get/player/{guid}

Get Video Player

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
guid path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ImageOptimizationsV2

Manage image media optimizations.

getOptimizationsV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/image/optimizations/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/image/optimizations/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/image/optimizations/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/image/optimizations/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/image/optimizations/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/image/optimizations/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/image/optimizations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/image/optimizations/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/image/optimizations/

Get Optimizations

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ImageOptimizationsV3

Manage image media optimizations.

getOptimizationsV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/image/optimizations/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/image/optimizations/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/image/optimizations/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/image/optimizations/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/image/optimizations/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/image/optimizations/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/image/optimizations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/image/optimizations/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/image/optimizations/

Get Optimizations

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

LivestreamV2

Livestream chat and management.

renderLivePopout

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/v2/live/popout \
-H 'Accept: application/json'
GET https://www.floatplane.com/v2/live/popout HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/v2/live/popout',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/v2/live/popout',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/v2/live/popout', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/v2/live/popout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/v2/live/popout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/v2/live/popout", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /v2/live/popout

Render Live Popout

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateConfig

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/live/config/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/live/config/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/live/config/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/live/config/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/live/config/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/live/config/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/live/config/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/live/config/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/live/config/update

Update Config

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadLiveThumbnail

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/live/thumbnail/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/live/thumbnail/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/live/thumbnail/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/live/thumbnail/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/live/thumbnail/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/live/thumbnail/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/live/thumbnail/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/live/thumbnail/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/live/thumbnail/upload

Upload Thumbnail

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ModerationV2

Moderation actions, for users and comments.

banUserV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/user/ban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/user/ban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/user/ban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/user/ban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/moderation/user/ban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/user/ban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/ban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/user/ban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/moderation/user/ban

Ban User

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unbanUserV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/user/unban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/user/unban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/moderation/user/unban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/user/unban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/moderation/user/unban

Unban User

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listBanV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderation/user/ban/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderation/user/ban/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/user/ban/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/moderation/user/ban/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/moderation/user/ban/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderation/user/ban/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/ban/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderation/user/ban/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/moderation/user/ban/list

List Ban

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

hideCommentV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/comment/hide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/comment/hide HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/comment/hide',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/comment/hide',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/moderation/comment/hide', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/comment/hide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/comment/hide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/comment/hide", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/moderation/comment/hide

Hide Comment

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unhideCommentV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/comment/unhide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/comment/unhide HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/comment/unhide',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/comment/unhide',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/moderation/comment/unhide', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/comment/unhide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/comment/unhide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/comment/unhide", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/moderation/comment/unhide

Unhide Comment

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

moderateVideoComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/comment/moderate/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/comment/moderate/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/comment/moderate/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/comment/moderate/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/comment/moderate/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/comment/moderate/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/comment/moderate/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/comment/moderate/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/comment/moderate/

Moderate Video Comment

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userBanStatusV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderator/userBanStatus \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderator/userBanStatus HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderator/userBanStatus',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/moderator/userBanStatus',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/moderator/userBanStatus', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderator/userBanStatus', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderator/userBanStatus");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderator/userBanStatus", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/moderator/userBanStatus

User Ban Status

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userUnbanV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderator/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderator/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderator/user/unban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/moderator/user/unban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/moderator/user/unban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderator/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderator/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderator/user/unban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/moderator/user/unban

User Unban

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userInfoV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderation/user/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderation/user/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/moderation/user/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/moderation/user/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/moderation/user/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderation/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderation/user/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/moderation/user/info

User Info

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ModerationV3

Moderation actions, for users and comments.

banUserV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/user/ban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/user/ban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/user/ban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/user/ban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/moderation/user/ban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/user/ban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/ban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/user/ban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/moderation/user/ban

Ban User

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unbanUserV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/user/unban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/user/unban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/moderation/user/unban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/user/unban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/moderation/user/unban

Unban User

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listBanV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderation/user/ban/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderation/user/ban/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/user/ban/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/moderation/user/ban/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/moderation/user/ban/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderation/user/ban/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/ban/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderation/user/ban/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/moderation/user/ban/list

List Ban

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

hideCommentV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/comment/hide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/comment/hide HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/comment/hide',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/comment/hide',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/moderation/comment/hide', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/comment/hide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/comment/hide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/comment/hide", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/moderation/comment/hide

Hide Comment

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unhideCommentV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/comment/unhide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/comment/unhide HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/comment/unhide',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/comment/unhide',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/moderation/comment/unhide', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/comment/unhide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/comment/unhide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/comment/unhide", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/moderation/comment/unhide

Unhide Comment

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

moderateComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/moderate/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/moderate/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/comment/moderate/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/comment/moderate/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/comment/moderate/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/moderate/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/moderate/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/moderate/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/comment/moderate/

Moderate Comment

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userBanStatusV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderator/userBanStatus \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderator/userBanStatus HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderator/userBanStatus',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/moderator/userBanStatus',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/moderator/userBanStatus', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderator/userBanStatus', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderator/userBanStatus");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderator/userBanStatus", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/moderator/userBanStatus

User Ban Status

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userUnbanV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderator/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderator/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderator/user/unban',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/moderator/user/unban',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/moderator/user/unban', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderator/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderator/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderator/user/unban", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/moderator/user/unban

User Unban

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userInfoV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderation/user/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderation/user/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/moderation/user/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/moderation/user/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/moderation/user/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderation/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderation/user/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/moderation/user/info

User Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

PasswordResetV2

Password management.

sendPasswordReset

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset/request \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset/request HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/password/reset/request',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset/request',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/password/reset/request', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset/request', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset/request");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset/request", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/password/reset/request

Send Password Reset

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

resetPassword

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/password/reset',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/password/reset', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/password/reset

Reset Password

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

validateKey

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset/validate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset/validate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/password/reset/validate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset/validate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/password/reset/validate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset/validate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset/validate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset/validate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/password/reset/validate

Validate Key

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

PaymentsV2

User payment method/address/invoice management.

listPaymentMethods

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/method/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/method/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/method/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/method/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/method/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/method/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/method/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/method/list

List Payment Methods

Retrieve a list of saved payment methods for the user’s account. Payment methods are how the user can pay for their subscription to creators on the platform.

Example responses

200 Response

[
{
"id": 54715,
"payment_processor": 1,
"default": true,
"card": {
"brand": "Visa",
"last4": "1234",
"exp_month": 11,
"exp_year": 2028,
"name": "Firstname Lastname"
}
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [PaymentMethodModel] false none none
» id integer true none none
» payment_processor integer true none none
» default boolean true none none
» card object true none none
»» brand string true none none
»» last4 string true none none
»» exp_month integer true none none
»» exp_year integer true none none
»» name string true none none

addPaymentMethod

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/method/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/method/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/method/add

Add Payment Method

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deletePaymentMethod

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/method/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/method/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/method/delete

Delete Payment Method

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

setPrimaryPaymentMethod

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/method/set',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/set',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/method/set', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/set", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/method/set

Set Primary Payment Method

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

estimateTaxes

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/tax/estimate \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/tax/estimate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/tax/estimate',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/tax/estimate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/tax/estimate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/tax/estimate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/tax/estimate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/tax/estimate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/tax/estimate

Estimate Taxes

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

purchaseSubscription

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/subscription/purchase \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/subscription/purchase HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/subscription/purchase',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/subscription/purchase',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/subscription/purchase', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/subscription/purchase', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/subscription/purchase");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/subscription/purchase", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/subscription/purchase

Purchase Subscription

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

cancelSubscription

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/subscription/cancel \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/subscription/cancel HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/subscription/cancel',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/subscription/cancel',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/subscription/cancel', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/subscription/cancel', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/subscription/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/subscription/cancel", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/subscription/cancel

Cancel Subscription

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listAddresses

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/address/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/address/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/address/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/address/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/address/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/address/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/address/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/address/list

List Addresses

Retrieve a list of billing addresses saved to the user’s account, to be used in conjunction with a payment method when purchasing subscriptions to creators.

Example responses

200 Response

[
{
"id": 44739,
"customerName": "Firstname Lastname",
"postalCode": "12345",
"line1": "123 Main St",
"city": "Metropolis",
"region": "NY",
"country": "US",
"default": true
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [PaymentAddressModel] false none none
» id integer true none none
» customerName string true none none
» postalCode string true none none
» line1 string true none none
» city string true none none
» region string true none none
» country string true none none
» default boolean true none none

addAddress

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/address/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/address/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/address/add

Add Address

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateAddress

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/address/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/address/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/address/update

Update Address

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deleteAddress

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/address/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/address/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/address/delete

Delete Address

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

setPrimaryAddress

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/address/set',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/set',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/address/set', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/set", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/address/set

Set Primary Address

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

webhook

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/webhook/{paymentProcessor}

Webhook

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
paymentProcessor path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

webhookWithSubprocessor

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}

Webhook With Subprocessor

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
paymentProcessor path string true none
subPaymentProcessor path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listInvoices

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/invoice/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/invoice/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/invoice/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/invoice/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/invoice/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/invoice/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/invoice/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/invoice/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/invoice/list

List Invoices

Retrieve a list of paid or unpaid subscription invoices for the user.

Example responses

200 Response

{
"invoices": [
{
"id": 1234567,
"amountDue": 50,
"amountTax": 0,
"attemptCount": 0,
"currency": "usd",
"date": "2020-11-19T16:23:33.000Z",
"dateDue": null,
"periodStart": "2020-09-25T07:35:04.273Z",
"periodEnd": "2021-09-25T07:35:04.273Z",
"nextPaymentAttempt": "2020-09-25T07:35:04.273Z",
"paid": true,
"forgiven": false,
"refunded": false,
"subscriptions": [
{
"id": 1234567,
"subscription": 12345,
"periodStart": "2020-09-25T07:35:04.273Z",
"periodEnd": "2021-09-25T07:35:04.273Z",
"value": 50,
"amountSubtotal": 50,
"amountTotal": 50,
"amountTax": 0,
"plan": {
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"title": "LinusTechTips",
"urlname": "linustechtips",
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
}
}
}
}
]
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK PaymentInvoiceListV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

SocketV2

Socket subscriptions and connections.

subscribeUser

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/socket/subscribe/user \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/socket/subscribe/user HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/socket/subscribe/user',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/socket/subscribe/user',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/socket/subscribe/user', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/socket/subscribe/user', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/socket/subscribe/user");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/socket/subscribe/user", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/socket/subscribe/user

Subscribe User

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

subscribeUserById

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/socket/subscribe/user/{id} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/socket/subscribe/user/{id} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/socket/subscribe/user/{id}',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/socket/subscribe/user/{id}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/socket/subscribe/user/{id}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/socket/subscribe/user/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/socket/subscribe/user/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/socket/subscribe/user/{id}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/socket/subscribe/user/{id}

Subscribe User By Id

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

SocketV3

Socket subscriptions and connections.

socketConnect

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/socket/connect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/socket/connect HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/socket/connect',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/socket/connect',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/socket/connect', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/socket/connect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/socket/connect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/socket/connect", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/socket/connect

Connect

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

disconnectSocket

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/socket/disconnect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/socket/disconnect HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/socket/disconnect',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/socket/disconnect',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/socket/disconnect', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/socket/disconnect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/socket/disconnect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/socket/disconnect", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/socket/disconnect

Disconnect

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

StripeV2

Stripe metadata.

retrievePublicKey

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/stripe/pk \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/stripe/pk HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/payment/stripe/pk',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/payment/stripe/pk',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/payment/stripe/pk', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/stripe/pk', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/stripe/pk");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/stripe/pk", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/payment/stripe/pk

Retrieve Public Key

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

SubscriptionsV2

Get user subscriptions.

listUserSubscriptionsV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/subscriptions \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/subscriptions HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/subscriptions',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/subscriptions',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/subscriptions', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/subscriptions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/subscriptions", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/subscriptions

List User Subscriptions

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

doesUserHaveSubV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/subscribed \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/subscribed HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/subscribed',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/subscribed',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/subscribed', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/subscribed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/subscribed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/subscribed", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/subscribed

Does User Have Sub

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

SubscriptionsV3

Get user subscriptions.

listUserSubscriptionsV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/subscriptions \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/subscriptions HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/subscriptions',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/subscriptions',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/subscriptions', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/subscriptions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/subscriptions", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/subscriptions

List User Subscriptions

Retrieve a list of all active subscriptions for the user.

Example responses

200 Response

[
{
"startDate": "2020-09-25T07:35:04.273Z",
"endDate": "2021-09-25T07:35:04.273Z",
"paymentID": 12345,
"interval": "year",
"paymentCancelled": false,
"plan": {
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
"creator": "59f94c0bdd241b70349eb72b"
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Subscriptions returned Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [UserSubscriptionModel] false none none
» startDate string(date-time) true none none
» endDate string(date-time)¦null true none none
» paymentID integer true none none
» interval string true none none
» paymentCancelled boolean true none none
» plan object true none none
»» id string true none none
»» title string true none none
»» description string true none none
»» price string false none none
»» priceYearly string false none none
»» currency string true none none
»» logo string false none none
»» interval string true none none
»» featured boolean true none none
»» allowGrandfatheredAccess boolean false none none
»» discordServers [DiscordServerModel] true none none
»»» id string true none none
»»» guildName string true none none
»»» guildIcon string true none none
»»» inviteLink string(uri) true none none
»»» inviteMode string true none none
»» discordRoles [DiscordRoleModel] true none none
»»» server string true none none
»»» roleName string true none none
» creator string true none none

getContent => getMultiCreatorBlogPosts

Parameter Expression
ids $response.body#/0/creator

getCreators => getInfo

Parameter Expression
creatorGUID $response.body#/0/creator

doesUserHaveSubV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/subscribed \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/subscribed HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/subscribed',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/subscribed',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/subscribed', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/subscribed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/subscribed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/subscribed", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/subscribed

Does User Have Sub

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

SupportV2

User support ticket management

submitSupport

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/support/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/support/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/support/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/support/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/support/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/support/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/support/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/support/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/support/

Submit Support

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getTicketTypes

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/support/ticket/types \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/support/ticket/types HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/support/ticket/types',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/support/ticket/types',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/support/ticket/types', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/support/ticket/types', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/support/ticket/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/support/ticket/types", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/support/ticket/types

Get Ticket Types

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

SyncV2

Sync connections.

syncConnect

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/sync/connect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/sync/connect HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/sync/connect',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/sync/connect',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/sync/connect', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/sync/connect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/sync/connect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/sync/connect", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/sync/connect

Connect

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

disconnectSync

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/sync/disconnect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/sync/disconnect HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/sync/disconnect',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/sync/disconnect',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/sync/disconnect', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/sync/disconnect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/sync/disconnect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/sync/disconnect", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/sync/disconnect

Disconnect

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

TranscodingV2

Creator transcoding progress, notifications, and subscriptions.

getTranscodeProgress

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/transcode/progress \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/transcode/progress HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/transcode/progress',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/transcode/progress',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/transcode/progress', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/transcode/progress', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/transcode/progress", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/transcode/progress

Get Transcode Progress

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

progressSubscribe

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/transcode/progress/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/transcode/progress/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/transcode/progress/subscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/transcode/progress/subscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/transcode/progress/subscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/transcode/progress/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/transcode/progress/subscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/transcode/progress/subscribe

Progress Subscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

progressUnsubscribe

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/transcode/progress/unsubscribe

Progress Unsubscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

TranscodingV3

Creator transcoding progress, notifications, and subscriptions.

getActiveProcesses

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/processing/active \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/processing/active HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/processing/active',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/processing/active',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/processing/active', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/processing/active', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/processing/active");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/processing/active", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/processing/active

Get Active Processes

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

progressSubscribeCMS

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/transcode/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/transcode/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/transcode/subscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/transcode/subscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/transcode/subscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/transcode/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/transcode/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/transcode/subscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/transcode/subscribe

Progress Subscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

progressUnsubscribeCMS

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/transcode/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/transcode/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/transcode/unsubscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/transcode/unsubscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/transcode/unsubscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/transcode/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/transcode/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/transcode/unsubscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/transcode/unsubscribe

Progress Unsubscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

UserV2

User discovery and profile management.

getUserInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/info?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/info?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/info?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/info',
params: {
'id' => 'array[string]'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/info', params={
'id': [
"string"
]
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/info?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/info

Info

Retrieve more detailed information about one or more users from their identifiers.

Parameters

Name In Type Required Description
id query array[string] true The GUID identifer(s) of the user(s) to be retrieved.

Example responses

200 Response

{
"users": [
{
"id": "59f94c0bdd241b70349eb723",
"user": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus",
"profileImage": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346_250x250.jpeg"
}
]
}
}
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Results of the user search UserInfoV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

self

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/self \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/self HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/self',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/self',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/self', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/self', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/self");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/self", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/self

Self

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserInfoByName

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/named?username=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/named?username=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/named?username=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/named',
params: {
'username' => 'array[string]'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/named', params={
'username': [
"string"
]
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/named?username=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/named", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/named

Get Info By Name

Retrieve more detailed information about one or more users from their usernames.

Parameters

Name In Type Required Description
username query array[string] true The username(s) of the user(s) to be retrieved.

Example responses

200 Response

{
"users": [
{
"id": "0123456789abcdef01234567",
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
},
"email": "testemail@example.com",
"displayName": "Firstname Lastname"
}
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Results of the user search UserNamedV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

updateInfo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/update

Update Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateEmail

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/email/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/email/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/email/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/email/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/email/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/email/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/email/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/email/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/email/update

Update Email

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

completeEmailChange

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/email/update/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/email/update/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/email/update/complete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/email/update/complete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/email/update/complete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/email/update/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/email/update/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/email/update/complete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/email/update/complete

Complete Email Change

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadAvatar

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/avatar \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/avatar HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/avatar',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/avatar',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/avatar', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/avatar', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/avatar");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/avatar", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/avatar

Upload Avatar

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

changePassword

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/change \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/change HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/password/change',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/change',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/password/change', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/change', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/change");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/change", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/password/change

Change Password

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserCreator

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/creator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/creator HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/creator',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/creator',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/creator', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/creator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/creator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/creator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/creator

Get Creator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getActivityFeedV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/activity \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/activity HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/activity',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/activity',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/activity', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/activity', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/activity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/activity", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/activity

Get Activity Feed

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getExternalLinksV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/links \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/links',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/links',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/links', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/links", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/links

Get External Links

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateExternalLinksV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/links \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/links',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/links',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/links', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/links", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/links

Update External Links

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getAdministrator

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/administrator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/administrator HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/administrator',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/administrator',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/administrator', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/administrator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/administrator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/administrator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/administrator

Get Administrator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getSecurity

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/security \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/security HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/security',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/security', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/security', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/security", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/security

Get Security

Retrieve information about the current security configuration for the user.

Example responses

200 Response

{
"twofactorEnabled": true,
"twofactorBackupCodeEnabled": true
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Current security settings UserSecurityV2Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

generateTwoFactorSecret

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/2fa',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/2fa

Generate Two Factor Secret

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

activateTwoFactorAuthentication

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa/activate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa/activate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/2fa/activate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa/activate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa/activate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa/activate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa/activate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa/activate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/2fa/activate

Activate Two Factor Authentication

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deactivateTwoFactorAuthentication

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa/deactivate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa/deactivate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/2fa/deactivate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa/deactivate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa/deactivate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa/deactivate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa/deactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa/deactivate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/2fa/deactivate

Deactivate Two Factor Authentication

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

activateBackupCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode/activate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode/activate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/backupcode/activate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode/activate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode/activate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode/activate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode/activate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode/activate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/backupcode/activate

Activate Backup Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deactivateBackupCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode/deactivate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode/deactivate HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/backupcode/deactivate',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode/deactivate',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode/deactivate', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode/deactivate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode/deactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode/deactivate", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/backupcode/deactivate

Deactivate Backup Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

generateBackupCode

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/security/backupcode',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/security/backupcode

Generate Backup Code

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserNotificationSettingsV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/notificationsetting \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/notificationsetting HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/notificationsetting',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/notificationsetting',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/notificationsetting', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/notificationsetting', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/notificationsetting");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/notificationsetting", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/notificationsetting

Get User Notification Settings

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateUserNotificationSettingsV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/notificationsetting \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/notificationsetting HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/notificationsetting',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/user/notificationsetting',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/user/notificationsetting', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/notificationsetting', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/notificationsetting");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/notificationsetting", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/user/notificationsetting

Update User Notification Settings

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

userCreatorBanStatus

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/ban/status?creator=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/ban/status?creator=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/user/ban/status?creator=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/user/ban/status',
params: {
'creator' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/user/ban/status', params={
'creator': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/ban/status', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/ban/status?creator=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/ban/status", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/user/ban/status

User Creator Ban Status

Determine whether or not the user is banned for a given creator.

Parameters

Name In Type Required Description
creator query string true The GUID of the creator being queried.

Example responses

200 Response

true

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Whether the user is banned or not boolean
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

UserV3

User discovery and profile management.

getActivityFeedV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/activity?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/activity?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/activity?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/activity',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/activity', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/activity', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/activity?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/activity", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/activity

Get Activity Feed

Retrieve recent activity for a user, such as comments and other interactions they have made on posts for creators.

Parameters

Name In Type Required Description
id query string true The GUID of the user being queried.

Example responses

200 Response

{
"activity": [
{
"time": "2021-10-09T08:12:51.290Z",
"comment": "This is the text of the comment being posted",
"postTitle": "TL: Facebook Does Not Care.",
"postId": "j7KjCaKrtV",
"creatorTitle": "LinusTechTips",
"creatorUrl": "linustechtips"
}
],
"visibility": "public"
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Activity returned UserActivityV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getExternalLinksV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/links?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/links?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/links?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/links',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/links', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/links?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/links", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/links

Get External Links

Retrieve configured social media links from a user’s profile.

Parameters

Name In Type Required Description
id query string true The GUID of the user being searched.

Example responses

200 Response

{
"twitch": {
"url": "https://twitch.tv/myusername",
"type": {
"name": "twitch",
"displayName": "Twitch",
"hostName": "twitch.tv"
}
}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - User links returned UserLinksV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

updateExternalLinksV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/links \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/links',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/links',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/links', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/links", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/links

Update External Links

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getSelf

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/self \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/self HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/self',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/self',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/self', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/self', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/self");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/self", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/self

Get Self

Retrieve more detailed information about the user, including their name and email.

Example responses

200 Response

{
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
},
"email": "testemail@example.com",
"displayName": "Firstname Lastname",
"creators": [],
"scheduledDeletionDate": null
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Information returned UserSelfV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

scheduleDeletion

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/delete

Schedule Deletion

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unscheduleDeletion

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/undelete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/undelete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/undelete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/undelete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/undelete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/undelete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/undelete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/undelete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/undelete

Unschedule Deletion

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getAchievementPerks

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/achievement/perks \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/achievement/perks HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/achievement/perks',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/achievement/perks',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/achievement/perks', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/achievement/perks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/achievement/perks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/achievement/perks", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/achievement/perks

Get Achievement Perks

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserNotificationSettingsV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/notification/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/notification/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/notification/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/user/notification/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/user/notification/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/notification/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/notification/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/notification/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/user/notification/list

Get User Notification Settings

Retrieve notification details for a user. The details are split into seperate settings for each subscribed creator.

Example responses

200 Response

[
{
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": null,
"icon": {
"width": 16,
"height": 16,
"path": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA1BMVEUfLTy/Rf//AAAAC0lEQVQI12MgEQAAADAAAWV61nwAAAAASUVORK5CYII="
},
"liveStream": null,
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
},
"userNotificationSetting": {
"createdAt": "2020-09-25T07:35:04.273Z",
"updatedAt": "2021-10-07T14:16:56.561Z",
"id": "abcdef0123456789abcdef01",
"contentEmail": false,
"contentFirebase": true,
"creatorMessageEmail": false,
"user": "0123456789abcdef01234567",
"creator": "59f94c0bdd241b70349eb72b"
}
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Notifications returned Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [UserNotificationModel] false none none
» creator CreatorModelV2 true none none
»» id string true none none
»» owner string true none none
»» title string true none none
»» urlname string true none none
»» description string true none none
»» about string true none none
»» category string true none none
»» cover ImageModel false none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
»» icon ImageModel true none none
»» liveStream LiveStreamModel false none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» thumbnail ImageModel false none none
»»» owner string true none none
»»» streamPath string true none none
»»» offline object true none none
»»»» title string false none none
»»»» description string false none none
»»»» thumbnail ImageModel false none none
»» subscriptionPlans [object] false none none
»» discoverable boolean true none none
»» subscriberCountDisplay string true none none
»» incomeDisplay boolean true none none
» userNotificationSetting object true none none
»» createdAt string(date-time) true none none
»» updatedAt string(date-time)¦null true none none
»» id string true none none
»» contentEmail boolean true none none
»» contentFirebase boolean true none none
»» creatorMessageEmail boolean true none none
»» user string true none none
»» creator string true none none

updateUserNotificationSettingsV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/notification/update \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/notification/update HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creator": "string",
"property": "contentEmail",
"newValue": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/notification/update',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/notification/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/notification/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/notification/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/notification/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/notification/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/notification/update

Update User Notification Settings

Enable or disable email or push notifications for a specific creator.

Body parameter

{
"creator": "string",
"property": "contentEmail",
"newValue": true
}

Parameters

Name In Type Required Description
body body UserNotificationUpdateV3PostRequest true none

Example responses

200 Response

true

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Whether or not the update was successful boolean
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

VideoCommentsV2

Video comment viewing and posting.

getVideoComments

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/comments \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/comments HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/comments',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/comments',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/comments', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/comments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/comments", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/comments

Get Video Comments

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

addVideoComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/comment',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/comment', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/comment

Add Video Comment

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getVideoCommentReplies

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/comment/replies \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/comment/replies HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/comment/replies',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/comment/replies',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/comment/replies', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/comment/replies', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/replies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/comment/replies", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/comment/replies

Get Video Comment Replies

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

VideoCommentInteractionsV2

Video comment interaction management.

clearInteraction

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment/interaction/clear \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment/interaction/clear HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/comment/interaction/clear',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment/interaction/clear',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/comment/interaction/clear', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment/interaction/clear', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/interaction/clear");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment/interaction/clear", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/comment/interaction/clear

Clear Interaction

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

setInteraction

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment/interaction/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment/interaction/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/comment/interaction/set',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment/interaction/set',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/comment/interaction/set', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment/interaction/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/interaction/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment/interaction/set", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/comment/interaction/set

Set Interaction

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

MediaV2

Video media management.

watchKey

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/watchkey \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/watchkey',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/watchkey',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/watchkey', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/watchkey", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/watchkey

Watch Key

TODO. This seems to originate from the .m3u8 file captured from the CDN endpoint, and is not usually called directly from code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getVideo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/info

Get Video

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getRelatedVideos

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/related \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/related HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/related',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/related',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/related', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/related', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/related");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/related", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/related

Get Related Videos

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateVideo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/update

Update Video

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deleteVideo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/delete

Delete Video

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/list

Get List

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

VideoV2

Video Dash key management.

getDashClearKeys

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/dash/watchkey \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/dash/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/dash/watchkey',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/dash/watchkey',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/dash/watchkey', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/dash/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/dash/watchkey", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/dash/watchkey

Get Dash Clear Keys

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getDashClearKeysOverPost

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/dash/watchkey \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/dash/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/dash/watchkey',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/dash/watchkey',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/dash/watchkey', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/dash/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/dash/watchkey", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/dash/watchkey

Get Dash Clear Keys Over Post

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getDashSignedChunkUrl

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/dash/chunk/signed \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/dash/chunk/signed HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/dash/chunk/signed',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/dash/chunk/signed',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/dash/chunk/signed', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/dash/chunk/signed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/chunk/signed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/dash/chunk/signed", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/dash/chunk/signed

Get Dash Signed Chunk Url

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

PlaylistV2

Get playlists.

listPlaylistVideos

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/playlist/videos \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/playlist/videos HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/playlist/videos',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/playlist/videos',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/playlist/videos', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/playlist/videos', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/playlist/videos");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/playlist/videos", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/playlist/videos

List Videos

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

VideoUploadV2

Video uploading and management.

createMultipartUploadV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/upload/s3/multipart

Create Multipart Upload

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUploadedPartsV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/upload/s3/multipart \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/upload/s3/multipart',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/upload/s3/multipart', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/upload/s3/multipart", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/upload/s3/multipart

Get Uploaded Parts

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

signPartUploadVideo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/video/upload/s3/multipart/sign

Sign Part Upload

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

abortMultipartUploadV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/upload/s3/multipart/abort

Abort Multipart Upload

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

completeMultipartUploadVideo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/upload/s3/multipart/complete

Complete Multipart Upload

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadThumbnailV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/thumbnail \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/thumbnail HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/video/upload/thumbnail',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/thumbnail',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/video/upload/thumbnail', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/thumbnail', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/thumbnail");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/thumbnail", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/video/upload/thumbnail

Upload Thumbnail

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

WebhookV2

Webhook management.

connectedAccount

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/webhooks/connectedAccount/{site}

Connected Account

TODO - Not used in Floatplane code.

Parameters

Name In Type Required Description
site path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

WebhookV3

Webhook management.

IVSlivestreamPublish

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/webhooks/ivs/livestream \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/webhooks/ivs/livestream HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/webhooks/ivs/livestream',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/webhooks/ivs/livestream',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/webhooks/ivs/livestream', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/webhooks/ivs/livestream', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/webhooks/ivs/livestream");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/webhooks/ivs/livestream", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/webhooks/ivs/livestream

IVS Livestream Publish

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

livestreamPublish

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/webhooks/livestream \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/webhooks/livestream HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/webhooks/livestream',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/webhooks/livestream',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/webhooks/livestream', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/webhooks/livestream', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/webhooks/livestream");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/webhooks/livestream", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/webhooks/livestream

Livestream Publish

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

WebNotificationV2

Web push notification information and subscriptions.

getAppInfoV2

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/push/web/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/push/web/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/push/web/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/push/web/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/push/web/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/push/web/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/push/web/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/push/web/info

Get App Info

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

registerV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/push/web/register \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/push/web/register HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/push/web/register',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/push/web/register',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/push/web/register', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/push/web/register', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/register");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/push/web/register", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/push/web/register

Register

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unregisterV2

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/push/web/revoke \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/push/web/revoke HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/push/web/revoke',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/push/web/revoke',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/push/web/revoke', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/push/web/revoke', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/push/web/revoke", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/push/web/revoke

Unregister

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getTokenInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/push/web/tokenInfo \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/push/web/tokenInfo HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/push/web/tokenInfo',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/push/web/tokenInfo',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/push/web/tokenInfo', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/push/web/tokenInfo', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/tokenInfo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/push/web/tokenInfo", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/push/web/tokenInfo

Get Token Info

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

WebNotificationV3

Web push notification information and subscriptions.

getAppInfoV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/push/web/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/push/web/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/push/web/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/push/web/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/push/web/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/push/web/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/push/web/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/push/web/info

Get App Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

registerV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/push/web/register \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/push/web/register HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/push/web/register',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/push/web/register',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/push/web/register', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/push/web/register', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/register");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/push/web/register", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/push/web/register

Register

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

unregisterV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/push/web/revoke \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/push/web/revoke HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/push/web/revoke',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/push/web/revoke',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/push/web/revoke', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/push/web/revoke', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/push/web/revoke", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/push/web/revoke

Unregister

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ACP_TranscodingV3

Creator content uploading, status, and management.

getContentList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/content/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/content/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/content/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/content/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/content/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/content/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/content/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/content/list

Get Content List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getContentACP

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/content \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/content',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/content',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/content', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/content", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/content

Get Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/content \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/content',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/content',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/content', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/content", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/content

Post Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getOrderList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/order/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/order/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/order/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/order/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/order/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/order/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/order/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/order/list

Get Order List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getOrder

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/order \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/order HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/order',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/order',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/order', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/order', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/order", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/order

Get Order

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postOrder

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/order',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/order',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/order', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/order

Post Order

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postManager

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/manager \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/manager HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/manager',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/manager',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/manager', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/manager', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/manager");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/manager", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/manager

Post Manager

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createOrder

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/order/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/order/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/order/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/order/create

Create Order

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

augmentOrder

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order/augment \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order/augment HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/order/augment',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/order/augment',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/order/augment', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order/augment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/augment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order/augment", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/order/augment

Augment Order

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUploadList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/upload/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/upload/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/upload/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/upload/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/upload/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/upload/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/upload/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/upload/list

Get Upload List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUpload

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/upload \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/upload',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/upload

Get Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postUpload

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/upload',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/upload',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/upload', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/upload", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/upload

Post Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getJob

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/job \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/job HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/job',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/job',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/job', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/job', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/job");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/job", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/job

Get Job

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postJob

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/job \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/job HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/job',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/job',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/job', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/job', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/job");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/job", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/job

Post Job

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getTask

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/task \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/task HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/task',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/acp/v3/task',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/acp/v3/task', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/task', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/task");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/task", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /acp/v3/task

Get Task

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

postTask

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/task \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/task HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/acp/v3/task',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/acp/v3/task',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/acp/v3/task', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/task', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/task");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/task", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /acp/v3/task

Post Task

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CMS_BlogPostV3

CMS blog post editing and posting.

getBlogPostCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/blogPost/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/blogPost/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/get',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/blogPost/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/blogPost/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/blogPost/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/blogPost/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/blogPost/get

Get Blog Post

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listBlogPost

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/blogPost/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/blogPost/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/blogPost/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/blogPost/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/blogPost/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/blogPost/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/blogPost/list

List Blog Post

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createBlogPost

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/blogPost/create

Create Blog Post

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

editBlogPost

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/blogPost/edit

Edit Blog Post

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deleteBlogPost

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/blogPost/delete

Delete Blog Post

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateNewAttachments

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/attachments/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/attachments/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/blogPost/attachments/update',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/attachments/update',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/attachments/update', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/attachments/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/attachments/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/attachments/update", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/blogPost/attachments/update

Update New Attachments

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CMS_ContentV3

CMS content editing and posting.

editContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/content/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/content/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/content/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/content/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/content/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/content/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/content/edit

Edit Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listVideoContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/video/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/video/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/video/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/video/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/video/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/video/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/video/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/video/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/video/list

List Video Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listAudioContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/audio/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/audio/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/audio/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/audio/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/audio/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/audio/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/audio/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/audio/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/audio/list

List Audio Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listPictureContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/picture/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/picture/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/picture/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/picture/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/picture/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/picture/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/picture/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/picture/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/picture/list

List Picture Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listGalleryContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/gallery/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/gallery/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/gallery/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/gallery/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/gallery/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/gallery/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/gallery/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/gallery/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/gallery/list

List Gallery Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getVideoContentCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/video/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/video/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/video/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/video/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/video/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/video/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/video/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/video/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/video/

Get Video Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getAudioContentCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/audio/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/audio/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/audio/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/audio/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/audio/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/audio/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/audio/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/audio/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/audio/

Get Audio Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getPictureContentCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/picture/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/picture/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/picture/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/picture/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/picture/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/picture/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/picture/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/picture/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/picture/

Get Picture Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getGalleryContentCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/gallery/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/gallery/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/gallery/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/gallery/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/gallery/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/gallery/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/gallery/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/gallery/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/gallery/

Get Gallery Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getContentCMS

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/content/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/content/

Get Content

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deleteContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/content/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/content/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/content/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/content/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/content/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/content/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/content/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/content/delete

Delete Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CMS_CreatorWarehouseV3

CMS Creator Warehouse management.

getCreatorWarehouse

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/creatorwarehouse \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/creatorwarehouse HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/creatorwarehouse',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/creatorwarehouse', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/creatorwarehouse', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/creatorwarehouse", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/creatorwarehouse

Get Creator Warehouse

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

saveCreatorWarehouse

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/save',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/save',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/save', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/save", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/save

Save Creator Warehouse

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listPriceRules

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/pricerule/list

List Price Rules

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getPriceRule

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/pricerule/

Get Price Rule

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createPriceRule

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/pricerule/create

Create Price Rule

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

editPriceRule

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/pricerule/edit

Edit Price Rule

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

deletePriceRule

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/pricerule/delete

Delete Price Rule

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listProducts

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/products/list

List Products

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listCollections

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/collections/list

List Collections

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getShopInfo

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/shop/get

Get Shop Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listShopShippingCountries

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/shop/shippingcountries/list

List Shop Shipping Countries

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getProducts

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/products/get

Get Products

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCollections

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/collections/get

Get Collections

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getCountries

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/creatorwarehouse/countries/get

Get Countries

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CMS_LivestreamV3

CMS Livestream information.

getLivestreamInfo

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/live/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/live/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/live/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/live/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/live/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/live/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/live/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/live/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/live/info

Get Livestream Info

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CMS_CreatorSubscriptionPlanV3

CMS creator subscription plan and subscriber information.

listSubscriptionPlansCMS

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/plan/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/plan/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/plan/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/cms/v3/plan/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/cms/v3/plan/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/plan/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/plan/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/plan/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/cms/v3/plan/list

List Subscription Plans

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listSubscribers

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/subscribers/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/subscribers/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/subscribers/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/subscribers/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/subscribers/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/subscribers/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/subscribers/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/subscribers/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/subscribers/list

List Subscribers

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

downloadSubscribers

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/subscribers/download \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/subscribers/download HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/cms/v3/subscribers/download',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/cms/v3/subscribers/download',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/cms/v3/subscribers/download', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/subscribers/download', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/subscribers/download");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/subscribers/download", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/cms/v3/subscribers/download

Download Subscribers

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CommentV3

Comment retrieval, posting, and interacting.

postComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"blogPost": "string",
"text": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/comment',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/comment',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/comment', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/comment

Post Comment

Post a new comment to a blog post object.

Body parameter

{
"blogPost": "string",
"text": "string"
}

Parameters

Name In Type Required Description
body body CommentV3PostRequest true none

Example responses

200 Response

{
"id": "8d575af6834343b166d0562a",
"blogPost": "j7KjCaKrtV",
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"contentReference": "",
"contentReferenceType": "",
"text": "This is the text of the comment being posted",
"replying": null,
"postDate": "2021-10-09T08:12:51.290Z",
"editDate": "2021-10-09T08:12:51.290Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
}
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Commented posted successfully, returning comment details CommentV3PostResponse
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getComments

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0 \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0 HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/comment',
params: {
'blogPost' => 'string',
'limit' => 'integer'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/comment', params={
'blogPost': 'string', 'limit': '0'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/comment", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/comment

Get Comments

Get comments for a blog post object. Note that replies to each comment tend to be limited to 3. The extra replies can be retrieved via getCommentReplies. The difference in $response.body#/0/totalReplies and $response.body#/0/replies’s length can determine if more comments need to be loaded.

Parameters

Name In Type Required Description
blogPost query string true Which blog post to retrieve comments for.
limit query integer true The maximum number of comments to return. This should be set to 20 by default.
fetchAfter query string false When loading more comments on a blog post, this is used to determine which which comments to skip. This is a GUID of the last comment from the previous call to getComments.

Example responses

200 Response

[
{
"id": "00c5ab7379e746b24a76634b",
"blogPost": "Dw2ms0AgL8",
"user": {
"id": "ff0a479639c60f3a8cd18d8b",
"username": "some_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user10.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user10_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user10_100x100.png"
}
]
}
},
"contentReference": "",
"contentReferenceType": "",
"text": "This is my comment text, I really like this video.",
"replying": null,
"postDate": "2021-10-09T14:58:34.829Z",
"editDate": "2021-10-09T14:58:34.829Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"totalReplies": 0,
"replies": [],
"userInteraction": null
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - All comments returned for the query parameters Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CommentModel] false none none
» id string true none none
» blogPost string true none none
» user UserModel true none Represents some basic information of a user (id, username, and profile image).
»» id string true none none
»» username string true none none
»» profileImage ImageModel true none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
» contentReference string true none none
» contentReferenceType string true none none
» text string true none none
» replying string true none none
» postDate string true none none
» editDate string true none none
» likes integer true none none
» dislikes integer true none none
» score integer true none none
» interactionCounts object true none none
»» like integer false none none
»» dislike integer false none none
» totalReplies integer true none none
» replies [CommentReplyModel] true none none
»» id string true none none
»» blogPost string true none none
»» user UserModel true none Represents some basic information of a user (id, username, and profile image).
»» contentReference string true none none
»» contentReferenceType string true none none
»» text string true none none
»» replying string true none none
»» postDate string(date-time) true none none
»» editDate string(date-time)¦null true none none
»» likes integer true none none
»» dislikes integer true none none
»» score integer true none none
»» interactionCounts object true none none
»»» like integer false none none
»»» dislike integer false none none
»» userInteraction [string] false none none
» userInteraction [string] false none none

getMoreComments => getcomments

Parameter Expression
fetchAfter $response.body#/19/id

getMoreReplies => getCommentReplies

Parameter Expression

getCommentReplies

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/comment/replies',
params: {
'comment' => 'string',
'blogPost' => 'string',
'limit' => 'integer',
'rid' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/comment/replies', params={
'comment': 'string', 'blogPost': 'string', 'limit': '0', 'rid': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/comment/replies', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/comment/replies", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/comment/replies

Get Comment Replies

Retrieve more replies from a comment.

Parameters

Name In Type Required Description
comment query string true The identifer of the comment from which to retrieve replies.
blogPost query string true The identifer of the blog post the comment belongs to.
limit query integer true How many replies to retrieve.
rid query string true The identifer of the last reply in the reply chain.

Example responses

200 Response

[
{
"id": "1234567890abcdef",
"blogPost": "p3OSnFmsR3",
"user": {
"id": "abcdef1234567890",
"username": "the_username",
"profileImage": {
"width": 225,
"height": 225,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png"
}
]
}
},
"contentReference": "",
"contentReferenceType": "",
"text": "This is my reply text",
"replying": "1234567890abcdef0",
"postDate": "2021-12-17T06:57:33.152Z",
"editDate": "2021-12-17T06:57:33.152Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"userInteraction": null
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CommentReplyModel] false none none
» id string true none none
» blogPost string true none none
» user UserModel true none Represents some basic information of a user (id, username, and profile image).
»» id string true none none
»» username string true none none
»» profileImage ImageModel true none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
» contentReference string true none none
» contentReferenceType string true none none
» text string true none none
» replying string true none none
» postDate string(date-time) true none none
» editDate string(date-time)¦null true none none
» likes integer true none none
» dislikes integer true none none
» score integer true none none
» interactionCounts object true none none
»» like integer false none none
»» dislike integer false none none
» userInteraction [string] false none none

likeComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/like \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v3/comment/like HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: text/plain
const inputBody = '{
"comment": "string",
"blogPost": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};

fetch('https://www.floatplane.com/api/v3/comment/like',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/plain'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/comment/like',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}

r = requests.post('https://www.floatplane.com/api/v3/comment/like', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/plain',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/like', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/like");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/like", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/comment/like

Like Comment

Like a comment on a blog post.

Body parameter

{
"comment": "string",
"blogPost": "string"
}

Parameters

Name In Type Required Description
body body CommentLikeV3PostRequest true none

Example responses

200 Response

"like"

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Comment successfully liked string
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

dislikeComment

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/dislike \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v3/comment/dislike HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: text/plain
const inputBody = '{
"comment": "string",
"blogPost": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};

fetch('https://www.floatplane.com/api/v3/comment/dislike',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/plain'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/comment/dislike',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}

r = requests.post('https://www.floatplane.com/api/v3/comment/dislike', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/plain',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/dislike', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/dislike");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/dislike", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/comment/dislike

Dislike Comment

Dislike a comment on a blog post.

Body parameter

{
"comment": "string",
"blogPost": "string"
}

Parameters

Name In Type Required Description
body body CommentLikeV3PostRequest true none

Example responses

200 Response

"dislike"

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Comment successfully disliked string
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

ContentV3

Content retrieval and interacting.

getCreatorBlogPosts

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/creator?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/creator?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/creator?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/creator',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/creator', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/creator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/creator?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/creator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/creator

Get Creator Blog Posts

Retrieve a paginated list of blog posts from a creator. Or search for blog posts from a creator.

Example query: https://www.floatplane.com/api/v3/content/creator?id=59f94c0bdd241b70349eb72b&fromDate=2021-07-24T07:00:00.001Z&toDate=2022-07-27T06:59:59.099Z&hasVideo=true&hasAudio=true&hasPicture=false&hasText=false&fromDuration=1020&toDuration=9900&sort=DESC&search=thor&tags[0]=tjm

Parameters

Name In Type Required Description
id query string true The GUID of the creator to retrieve posts from.
limit query integer false The maximum number of posts to return.
fetchAfter query integer false The number of posts to skip. Usually a multiple of limit, to get the next “page” of results.
search query string false Search filter to look for specific posts.
tags query array[string] false An array of tags to search against, possibly in addition to search.
hasVideo query boolean false If true, include blog posts with video attachments.
hasAudio query boolean false If true, include blog posts with audio attachments.
hasPicture query boolean false If true, include blog posts with picture attachments.
hasText query boolean false If true, only include blog posts that are text-only. Text-only posts are ones without any attachments, such as video, audio, picture, and gallery.
sort query string false DESC = Newest First. ASC = Oldest First.
fromDuration query integer false Include video posts where the duration of the video is at minimum fromDuration seconds long. Usually in multiples of 60 seconds. Implies hasVideo=true.
toDuration query integer false Include video posts where the duration of the video is at maximum toDuration seconds long. Usually in multiples of 60 seconds. Implies hasVideo=true.
fromDate query string(date-time) false Include posts where the publication date is on or after this filter date.
toDate query string(date-time) false Include posts where the publication date is on or before this filter date.

Detailed descriptions

hasText: If true, only include blog posts that are text-only. Text-only posts are ones without any attachments, such as video, audio, picture, and gallery.

This filter and hasVideo, hasAudio, and hasPicture should be mutually exclusive. That is, if hasText is true then the other three should all be false. Conversely, if any of the other three are true, then hasText should be false. Otherwise, the filter would produce no results.

Enumerated Values

Parameter Value
sort ASC
sort DESC

Example responses

200 Response

[
{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 41,
"dislikes": 0,
"score": 41,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"TViGzkuIic"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
},
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"KijsTQP8Rr",
"psqoN3CgMH"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Creator posted returned Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [BlogPostModelV3] false none none
» id string true none none
» guid string true none none
» title string true none none
» text string true none Text description of the post. May have HTML paragraph (<p>) tags surrounding it, along with other HTML…
» type string true none none
» tags [string] true none none
» attachmentOrder [string] true none none
» metadata PostMetadataModel true none none
»» hasVideo boolean true none none
»» videoCount integer true none none
»» videoDuration number true none none
»» hasAudio boolean true none none
»» audioCount integer true none none
»» audioDuration number true none none
»» hasPicture boolean true none none
»» pictureCount integer true none none
»» hasGallery boolean true none none
»» galleryCount integer true none none
»» isFeatured boolean true none none
» releaseDate string(date-time) true none none
» likes integer true none none
» dislikes integer true none none
» score integer true none none
» comments integer true none none
» creator object true none none
»» id string true none none
»» owner object true none none
»»» id string true none none
»»» username string true none none
»» title string true none none
»» urlname string true none none
»» description string true none none
»» about string true none none
»» category object true none none
»»» title string false none none
»» cover ImageModel true none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
»» icon ImageModel true none none
»» liveStream LiveStreamModel false none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» thumbnail ImageModel false none none
»»» owner string true none none
»»» streamPath string true none none
»»» offline object true none none
»»»» title string false none none
»»»» description string false none none
»»»» thumbnail ImageModel false none none
»» subscriptionPlans [SubscriptionPlanModel] true none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» price string false none none
»»» priceYearly string false none none
»»» currency string true none none
»»» logo string false none none
»»» interval string true none none
»»» featured boolean true none none
»»» allowGrandfatheredAccess boolean false none none
»»» discordServers [DiscordServerModel] true none none
»»»» id string true none none
»»»» guildName string true none none
»»»» guildIcon string true none none
»»»» inviteLink string(uri) true none none
»»»» inviteMode string true none none
»»» discordRoles [DiscordRoleModel] true none none
»»»» server string true none none
»»»» roleName string true none none
»» discoverable boolean true none none
»» subscriberCountDisplay string true none none
»» incomeDisplay boolean true none none
»» card ImageModel false none none
» wasReleasedSilently boolean true none none
» thumbnail ImageModel false none none
» isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
» videoAttachments [string] false none none
» audioAttachments [string] false none none
» pictureAttachments [string] false none none
» galleryAttachments [string] false none none

Enumerated Values

Property Value
type blogPost

getBlogPost => getBlogPost

Parameter Expression
id $response.body#/0/id

getMultiCreatorBlogPosts

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1 \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1 HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/creator/list',
params: {
'ids' => 'array[string]',
'limit' => 'integer'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/creator/list', params={
'ids': [
"string"
], 'limit': '1'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/creator/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/creator/list

Get Multi Creator Blog Posts

Retrieve paginated blog posts from multiple creators for the home page.

Example query: https://www.floatplane.com/api/v3/content/creator/list?ids[0]=59f94c0bdd241b70349eb72b&limit=20&fetchAfter[0][creatorId]=59f94c0bdd241b70349eb72b&fetchAfter[0][blogPostId]=B4WsyLnybS&fetchAfter[0][moreFetchable]=true

Parameters

Name In Type Required Description
ids query array[string] true The GUID(s) of the creator(s) to retrieve posts from.
limit query integer true The maximum number of posts to retrieve.
fetchAfter query array[object] false For pagination, this is used to determine which posts to skip. There should be one fetchAfter object for each creator in ids. The moreFetchable in the request, and all of the data, comes from the ContentCreatorListV3Response.

Example responses

200 Response

{
"blogPosts": [
{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 40,
"dislikes": 0,
"score": 40,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"TViGzkuIic"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
},
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"KijsTQP8Rr",
"psqoN3CgMH"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
}
],
"lastElements": [
{
"creatorId": "59f94c0bdd241b70349eb72b",
"blogPostId": "l2wH2gXLiW",
"moreFetchable": true
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Posts returned ContentCreatorListV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getContentTags

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/tags?creatorIds=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/tags?creatorIds=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/tags?creatorIds=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/tags',
params: {
'creatorIds' => 'array[string]'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/tags', params={
'creatorIds': [
"string"
]
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/tags', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/tags?creatorIds=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/tags", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/tags

Get Content Tags

Retrieve all tags and the number of times the tags have been used for the specified creator(s).

Parameters

Name In Type Required Description
creatorIds query array[string] true The creator(s) to search by.

Example responses

200 Response

{
"battery": 1,
"server": 1,
"Airpods": 1,
"storage": 1,
"tjm": 1,
"Apple": 1,
"swap": 1,
"memory": 1,
"ltt": 1
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Creator tag information Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties integer false none none

getBlogPost

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/post?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/post?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/post?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/post',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/post', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/post', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/post?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/post", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/post

Get Blog Post

Retrieve more details on a specific blog post object for viewing.

Parameters

Name In Type Required Description
id query string true The ID of the post to be retrieved.

Example responses

200 Response

{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 41,
"dislikes": 0,
"score": 41,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": null,
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": null,
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"userInteraction": [],
"videoAttachments": [
{
"id": "TViGzkuIic",
"guid": "TViGzkuIic",
"title": "October 9, 2021 @ 07:18 – First Linux Stream",
"type": "video",
"description": "",
"releaseDate": null,
"duration": 5689,
"creator": "59f94c0bdd241b70349eb72b",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": false,
"primaryBlogPost": "Dw2ms0AgL8",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/content_thumbnails/TViGzkuIic/324783659287024_1633769709593.jpeg",
"childImages": []
},
"isAccessible": true
}
],
"audioAttachments": [
{
"id": "iGssjNGPSD",
"guid": "iGssjNGPSD",
"title": "Robocop FP.mp3",
"type": "audio",
"description": "",
"duration": 4165,
"waveform": {
"dataSetLength": 3,
"highestValue": 71,
"lowestValue": 50,
"data": [
71,
50,
69
]
},
"creator": "59f94c0bdd241b70349eb72b",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": false,
"primaryBlogPost": "jVU2y9PlnG",
"isAccessible": true
}
],
"pictureAttachments": [],
"galleryAttachments": []
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Detailed post information ContentPostV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getRelatedBlogPosts

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/related?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/related?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/related?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/related',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/related', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/related', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/related?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/related", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/related

Get Related Blog Posts

Retrieve a list of blog posts that are related to the post being viewed.

Parameters

Name In Type Required Description
id query string true The ID of the originating post.

Example responses

200 Response

[
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true
},
{
"id": "j7KjCaKrtV",
"guid": "j7KjCaKrtV",
"title": "TL: Facebook Does Not Care.",
"text": "<p><strong>NEWS SOURCES:</strong></p><p><strong> </strong></p><p>MICRO-BOSS, WORD</p><p>Microsoft to make its devices more repairable following pressure</p><p><a href=\"https://linustechtips.com/topic/1379452-microsoft-agrees-to-independent-third-party-study-to-look-into-right-to-repair/\">https://linustechtips.com/topic/1379452-microsoft-agrees-to-independent-third-party-study-to-look-into-right-to-repair/</a></p><p><a href=\"https://grist.org/accountability/bowing-to-investors-microsoft-will-make-its-devices-easier-to-fix/\">https://grist.org/accountability/bowing-to-investors-microsoft-will-make-its-devices-easier-to-fix/</a></p><p><a href=\"https://www.asyousow.org/about-us#:~:text=As%20You%20Sow%20is%20the%20nation%E2%80%99s%20non-profit%20leader%20in%20shareholder%20advocacy\">https://www.asyousow.org/about-us#:~:text=As%20You%20Sow%20is%20the%20nation%E2%80%99s%20non-profit%20leader%20in%20shareholder%20advocacy</a>.</p><p>Louis is happy <a href=\"https://www.youtube.com/watch?v=TiMdvR99fBQ\">https://www.youtube.com/watch?v=TiMdvR99fBQ</a></p><p> </p><p>WHAT, THIS OLE’D THING?</p><p>Switch OLED launches <a href=\"https://arstechnica.com/gaming/2021/10/switch-oled-review-nintendos-nicest-most-nonessential-upgrade-yet/\">https://arstechnica.com/gaming/2021/10/switch-oled-review-nintendos-nicest-most-nonessential-upgrade-yet/</a></p><p><a href=\"https://www.youtube.com/watch?v=4mHq6Y7JSmg\">https://www.youtube.com/watch?v=4mHq6Y7JSmg</a></p><p>New Joy-Cons, but drift isn’t going away</p><p><a href=\"https://www.polygon.com/22688586/nintendo-switch-oled-joy-con-drift-controllers\">https://www.polygon.com/22688586/nintendo-switch-oled-joy-con-drift-controllers</a></p><p>screen protector <a href=\"https://www.nintendolife.com/news/2021/10/switch-oled-comes-with-a-screen-protector-installed-but-please-dont-remove-it-says-nintendo\">https://www.nintendolife.com/news/2021/10/switch-oled-comes-with-a-screen-protector-installed-but-please-dont-remove-it-says-nintendo</a></p><p> </p><p>SHAMEBOOK</p><p>Facebook has more outages</p><p><a href=\"https://www.engadget.com/facebook-and-instagram-are-down-for-the-second-time-this-week-193257623.html\">https://www.engadget.com/facebook-and-instagram-are-down-for-the-second-time-this-week-193257623.html</a></p><p><a href=\"https://twitter.com/Facebook/status/1446556732977778695\">https://twitter.com/Facebook/status/1446556732977778695</a></p><p>IG fixed <a href=\"https://twitter.com/InstagramComms/status/1446582114468597761\">https://twitter.com/InstagramComms/status/1446582114468597761</a></p><p>Unfollow everything developer banned <a href=\"https://www.theverge.com/2021/10/8/22716044/facebook-unfollow-everything-tool-louis-barclay-banned-for-life\">https://www.theverge.com/2021/10/8/22716044/facebook-unfollow-everything-tool-louis-barclay-banned-for-life</a></p><p><a href=\"https://slate.com/technology/2021/10/facebook-unfollow-everything-cease-desist.html\">https://slate.com/technology/2021/10/facebook-unfollow-everything-cease-desist.html</a></p><p><a href=\"https://louisbarclay.notion.site/Unfollow-Everything-cease-and-desist-letter-from-Facebook-ea219169421b457bb7ce010b7bf9ce1f\">https://louisbarclay.notion.site/Unfollow-Everything-cease-and-desist-letter-from-Facebook-ea219169421b457bb7ce010b7bf9ce1f</a></p><p> </p><p>QUICK BITS</p><p> </p><p>GET JEFF’D</p><p>Game backgrounds on Twitch replaced with Jeff Bezos</p><p><a href=\"https://twitter.com/AnEternalEnigma/status/1446421951883489281\">https://twitter.com/AnEternalEnigma/status/1446421951883489281</a></p><p>defaced <a href=\"https://www.cnet.com/tech/gaming/twitch-reportedly-defaced-with-pictures-of-jeff-bezos/\">https://www.cnet.com/tech/gaming/twitch-reportedly-defaced-with-pictures-of-jeff-bezos/</a></p><p> </p><p>ABOUT TO GET PADDLED</p><p>First In-App Purchasing alternative for iOS: Paddle</p><p><a href=\"https://twitter.com/PaddleHQ/status/1446050078301605890\">https://twitter.com/PaddleHQ/status/1446050078301605890</a></p><p><a href=\"https://paddle.com/platform/in-app-purchase/\">https://paddle.com/platform/in-app-purchase/</a></p><p>Sweeney</p><p><a href=\"https://twitter.com/TimSweeneyEpic/status/1446117510919585796\">https://twitter.com/TimSweeneyEpic/status/1446117510919585796</a></p><p> </p><p>STAY KINECTED</p><p>Sky Glass TV looks like a big iMac</p><p><a href=\"https://www.youtube.com/watch?v=GpGskL5PCKU\">https://www.youtube.com/watch?v=GpGskL5PCKU</a></p><p>Kinect motion controls <a href=\"https://www.theverge.com/2021/10/7/22714117/microsoft-kinect-is-back-sky-glass-tv-smart-camera-features\">https://www.theverge.com/2021/10/7/22714117/microsoft-kinect-is-back-sky-glass-tv-smart-camera-features</a> - full screen embedded video on this page and record</p><p><br /></p><p>UPGRADED TO CUMULONIMBUS</p><p>XCloud is now running Xbox Series X hardware</p><p><a href=\"https://www.kitguru.net/gaming/matthew-wilson/microsoft-has-upgraded-xcloud-to-xbox-series-x-hardware/\">https://www.kitguru.net/gaming/matthew-wilson/microsoft-has-upgraded-xcloud-to-xbox-series-x-hardware/</a></p><p><a href=\"https://www.eurogamer.net/articles/2021-10-07-xbox-cloud-gaming-now-runs-on-series-x-hardware\">https://www.eurogamer.net/articles/2021-10-07-xbox-cloud-gaming-now-runs-on-series-x-hardware</a></p><p> </p><p>NO PIXEL LEFT UN-LEAKED</p><p>Pixel 6 and 6 Pro teardowns leaked</p><p><a href=\"https://9to5google.com/2021/10/08/pixel-6-pro-teardown-leak/\">https://9to5google.com/2021/10/08/pixel-6-pro-teardown-leak/</a></p>",
"type": "blogPost",
"attachmentOrder": [
"R3mVASdVGt"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 377,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T02:55:00.045Z",
"likes": 101,
"dislikes": 0,
"score": 101,
"comments": 19,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596.jpeg",
"childImages": [
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596_1200x675.jpeg"
},
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596_400x225.jpeg"
}
]
},
"isAccessible": true
},
{
"id": "VkxlNv3k8j",
"guid": "VkxlNv3k8j",
"title": "TQ: Has USB-C WON Against Apple?",
"text": "<p>Learn about the proposed USB-C mandate in the EU.</p>",
"type": "blogPost",
"attachmentOrder": [
"7OWQQsxYYN"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 293,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-08T23:31:00.037Z",
"likes": 106,
"dislikes": 0,
"score": 106,
"comments": 15,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237_1200x675.jpeg"
}
]
},
"isAccessible": true
}
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Related post details Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [BlogPostModelV3] false none none
» id string true none none
» guid string true none none
» title string true none none
» text string true none Text description of the post. May have HTML paragraph (<p>) tags surrounding it, along with other HTML…
» type string true none none
» tags [string] true none none
» attachmentOrder [string] true none none
» metadata PostMetadataModel true none none
»» hasVideo boolean true none none
»» videoCount integer true none none
»» videoDuration number true none none
»» hasAudio boolean true none none
»» audioCount integer true none none
»» audioDuration number true none none
»» hasPicture boolean true none none
»» pictureCount integer true none none
»» hasGallery boolean true none none
»» galleryCount integer true none none
»» isFeatured boolean true none none
» releaseDate string(date-time) true none none
» likes integer true none none
» dislikes integer true none none
» score integer true none none
» comments integer true none none
» creator object true none none
»» id string true none none
»» owner object true none none
»»» id string true none none
»»» username string true none none
»» title string true none none
»» urlname string true none none
»» description string true none none
»» about string true none none
»» category object true none none
»»» title string false none none
»» cover ImageModel true none none
»»» width integer true none none
»»» height integer true none none
»»» path string(uri) true none none
»»» childImages [ChildImageModel] false none none
»»»» width integer true none none
»»»» height integer true none none
»»»» path string(uri) true none none
»» icon ImageModel true none none
»» liveStream LiveStreamModel false none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» thumbnail ImageModel false none none
»»» owner string true none none
»»» streamPath string true none none
»»» offline object true none none
»»»» title string false none none
»»»» description string false none none
»»»» thumbnail ImageModel false none none
»» subscriptionPlans [SubscriptionPlanModel] true none none
»»» id string true none none
»»» title string true none none
»»» description string true none none
»»» price string false none none
»»» priceYearly string false none none
»»» currency string true none none
»»» logo string false none none
»»» interval string true none none
»»» featured boolean true none none
»»» allowGrandfatheredAccess boolean false none none
»»» discordServers [DiscordServerModel] true none none
»»»» id string true none none
»»»» guildName string true none none
»»»» guildIcon string true none none
»»»» inviteLink string(uri) true none none
»»»» inviteMode string true none none
»»» discordRoles [DiscordRoleModel] true none none
»»»» server string true none none
»»»» roleName string true none none
»» discoverable boolean true none none
»» subscriberCountDisplay string true none none
»» incomeDisplay boolean true none none
»» card ImageModel false none none
» wasReleasedSilently boolean true none none
» thumbnail ImageModel false none none
» isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
» videoAttachments [string] false none none
» audioAttachments [string] false none none
» pictureAttachments [string] false none none
» galleryAttachments [string] false none none

Enumerated Values

Property Value
type blogPost

getVideoContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/video?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/video?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/video?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/video',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/video', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/video', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/video?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/video", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/video

Get Video Content

Retrieve more information on a video attachment from a blog post in order to consume the video content.

Parameters

Name In Type Required Description
id query string true The ID of the video attachment object, from the BlogPostModelV3.

Example responses

200 Response

{
"id": "TViGzkuIic",
"guid": "TViGzkuIic",
"title": "October 9, 2021 @ 07:18 – First Linux Stream",
"type": "video",
"description": "",
"releaseDate": null,
"duration": 5689,
"creator": "59f94c0bdd241b70349eb72b",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": false,
"primaryBlogPost": "Dw2ms0AgL8",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/content_thumbnails/TViGzkuIic/324783659287024_1633769709593.jpeg",
"childImages": []
},
"isAccessible": true,
"blogPosts": [
"Dw2ms0AgL8"
],
"timelineSprite": {
"width": 4960,
"height": 2610,
"path": "https://pbs.floatplane.com/timeline_sprite/TViGzkuIic/142493855372807_1633769996492.jpeg",
"childImages": []
},
"userInteraction": [],
"levels": [
{
"name": "360",
"width": 640,
"height": 360,
"label": "360p",
"order": 0
},
{
"name": "480",
"width": 854,
"height": 480,
"label": "480p",
"order": 1
},
{
"name": "720",
"width": 1280,
"height": 720,
"label": "720p",
"order": 2
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK - Video details returned ContentVideoV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getAudioContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/audio \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/audio HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/audio',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/audio',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/audio', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/audio', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/audio");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/audio", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/audio

Get Audio Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getPictureContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/picture?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/picture?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/picture?id=string',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/picture',
params: {
'id' => 'string'
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/picture', params={
'id': 'string'
}, headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/picture', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/picture?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/picture", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/picture

Get Picture Content

Retrieve more information on a picture attachment from a blog post in order to consume the picture content.

Parameters

Name In Type Required Description
id query string true The ID of the picture attachment object, from the BlogPostModelV3.

Example responses

200 Response

{
"id": "ZWKdCy8TMN",
"guid": "ZWKdCy8TMN",
"title": "\"I hate costumes\" Jonathan",
"type": "picture",
"description": "",
"likes": 1,
"dislikes": 0,
"score": 1,
"isProcessing": false,
"creator": "59f94c0bdd241b70349eb72b",
"primaryBlogPost": "PGZBzzRWpD",
"userInteraction": [],
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/picture_thumbnails/ZWKdCy8TMN/239212458322156_1634845035660.jpeg",
"childImages": []
},
"isAccessible": true,
"imageFiles": [
{
"path": "https://pbs.floatplane.com/content_images/59f94c0bdd241b70349eb72b/465975275316873_1634845031494_1164x675.jpeg?AWSAccessKeyId=...&Expires=...&Signature=...",
"width": 1164,
"height": 675,
"size": 165390
}
]
}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK ContentPictureV3Response
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getGalleryContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/gallery \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/gallery HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/gallery',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/gallery',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/gallery', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/gallery', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/gallery");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/gallery", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/gallery

Get Gallery Content

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/info',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/info',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/info', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/info", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/info

Get Content

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

likeContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/like \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/like HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"contentType": "blogPost",
"id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/like',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/like',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/like', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/like', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/like");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/like", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/like

Like Content

Toggles the like status on a piece of content. If disliked before, it will turn into a like. If liked before, the like will be removed.

Body parameter

{
"contentType": "blogPost",
"id": "string"
}

Parameters

Name In Type Required Description
body body ContentLikeV3Request true none

Example responses

200 Response

[
"like"
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK UserInteractionModel
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

dislikeContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/dislike \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/dislike HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"contentType": "blogPost",
"id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/dislike',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/dislike',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/dislike', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/dislike', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/dislike");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/dislike", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/dislike

Dislike Content

Toggles the dislike status on a piece of content. If liked before, it will turn into a dislike. If disliked before, the dislike will be removed.

Body parameter

{
"contentType": "blogPost",
"id": "string"
}

Parameters

Name In Type Required Description
body body ContentLikeV3Request true none

Example responses

200 Response

[
"dislike"
]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK UserInteractionModel
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

getPictureUrl

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/picture/url \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/picture/url HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/picture/url',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/picture/url',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/picture/url', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/picture/url', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/picture/url");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/picture/url", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/picture/url

Get Picture Url

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

ContentUploadV3

Content uploading.

createMultipartUploadV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/upload/s3/multipart

Create Multipart Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUploadedPartsV3

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/upload/s3/multipart \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/upload/s3/multipart',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/upload/s3/multipart', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/upload/s3/multipart", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/upload/s3/multipart

Get Uploaded Parts

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

signPartUploadContent

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/content/upload/s3/multipart/sign

Sign Part Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

abortMultipartUploadV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/upload/s3/multipart/abort

Abort Multipart Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

completeMultipartUploadContent

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/upload/s3/multipart/complete

Complete Multipart Upload

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

uploadThumbnailV3

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/thumbnail \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/thumbnail HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/upload/thumbnail',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/thumbnail',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/upload/thumbnail', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/thumbnail', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/thumbnail");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/thumbnail", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/upload/thumbnail

Upload Thumbnail

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

thumbnailUpdateSubscribe

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/thumbnail/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/thumbnail/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/thumbnail/subscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/thumbnail/subscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/thumbnail/subscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/thumbnail/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/thumbnail/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/thumbnail/subscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/thumbnail/subscribe

Thumbnail Update Subscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

thumbnailUpdateUnsubscribeV3

Thumnail management.

thumbnailUpdateUnsubscribe

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/content/thumbnail/unsubscribe

Thumbnail Update Unsubscribe

TODO - Not used in Floatplane code.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

PollV3

Poll voting and management.

joinLiveRoom

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/joinroom \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/joinroom HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/live/joinroom',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/joinroom',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/live/joinroom', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/joinroom', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/joinroom");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/joinroom", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/live/joinroom

Poll Join Live Room

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

joinLiveRoomModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/live/joinLiveRoomModerator

Poll Join Live Room Moderator

TODO - Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

leaveLiveRoom

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/live/leaveLiveRoom

Poll Leave Live Room

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

leaveLiveRoomModerator

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/live/leaveLiveRoomModerator

Poll Leave Live Room Moderator

TODO - Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

votePoll

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/votePoll \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/votePoll HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"pollId": "string",
"optionIndex": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/votePoll',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/votePoll',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/votePoll', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/votePoll', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/votePoll");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/votePoll", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/votePoll

Vote Poll

Vote on an option of a poll. Voting a second time or attempting to change a choice may result in an error.

Body parameter

{
"pollId": "string",
"optionIndex": 0
}

Parameters

Name In Type Required Description
body body object true none
» pollId body string false The id of the poll to vote on.
» optionIndex body integer false The index of the options of the poll for which to vote. This should not be outside the bounds of the poll options.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

cmsListPolls

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/poll/cms/list \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/poll/cms/list HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creatorId": "string",
"skip": 0,
"limit": 0,
"activeOnly": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/cms/list',
{
method: 'GET',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/poll/cms/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/poll/cms/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/poll/cms/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/cms/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/poll/cms/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/poll/cms/list

CMS List Polls

TODO

Body parameter

{
"creatorId": "string",
"skip": 0,
"limit": 0,
"activeOnly": true
}

Parameters

Name In Type Required Description
body body object true none
» creatorId body string false none
» skip body integer false none
» limit body integer false none
» activeOnly body boolean false none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

createLivePoll

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/create \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/create HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creatorId": "string",
"type": "string",
"title": "string",
"options": [
"string",
"string"
],
"duration": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/live/create',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/create',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/live/create', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/create", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/live/create

Create Live Poll

TODO

Body parameter

{
"creatorId": "string",
"type": "string",
"title": "string",
"options": [
"string",
"string"
],
"duration": "string"
}

Parameters

Name In Type Required Description
body body object true none
» creatorId body string false none
» type body string false none
» title body string false none
» options body [string] false none
» duration body string false none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

closePoll

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/close \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/close HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"pollId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/poll/close',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/poll/close',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/poll/close', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/close', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/close");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/close", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/poll/close

Close Poll

TODO

Body parameter

{
"pollId": "string"
}

Parameters

Name In Type Required Description
body body object true none
» pollId body string false none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

RedirectV3

Channel-level redirection to Youtube or other sites for latest videos outside of Floatplane.

redirectYTLatest

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey} HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/redirect-yt-latest/{channelKey}

Redirect to YouTube Latest Video

Redirects (HTTP 302) the user to the latest LMG video for a given LMG channel key. For example, visiting this URL with a channelKey of sc, it will take you directly to the latest Short Circuit video on YouTube. Unknown if this works for non-LMG creators for their channels. Not used in Floatplane code.

Parameters

Name In Type Required Description
channelKey path string true none

Example responses

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
302 Found Found None
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Headers

Status Header Type Format Description
302 Location string A YouTube URL for a video.

LoyaltyRewardsV3

Loyalty rewards information and claiming.

listCreatorLoyaltyReward

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/loyaltyreward/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/loyaltyreward/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/loyaltyreward/list',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/loyaltyreward/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/loyaltyreward/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/loyaltyreward/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/loyaltyreward/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/loyaltyreward/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/loyaltyreward/list

List Creator Loyalty Reward

Retrieve a list of loyalty rewards for the user. The reason for why this is a POST and not a GET is unknown.

Example responses

200 Response

[]

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

claimLoyaltyReward

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/loyaltyreward/claim \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/loyaltyreward/claim HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/user/loyaltyreward/claim',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/user/loyaltyreward/claim',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/user/loyaltyreward/claim', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/loyaltyreward/claim', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/loyaltyreward/claim");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/loyaltyreward/claim", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/user/loyaltyreward/claim

Claim Loyalty Reward

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

VpnV3

Experimental VPN configuration.

getEnabledState

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/enabled \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/enabled HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/experiments/vpn/enabled',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/enabled',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/enabled', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/enabled', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/enabled");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/enabled", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/experiments/vpn/enabled

Get Enabled State

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

updateEnabledState

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/experiments/vpn/enabled \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/experiments/vpn/enabled HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/experiments/vpn/enabled',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v3/experiments/vpn/enabled',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v3/experiments/vpn/enabled', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/experiments/vpn/enabled', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/enabled");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/experiments/vpn/enabled", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v3/experiments/vpn/enabled

Update Enabled State

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

downloadUserProfile

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/profile/download \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/profile/download HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/experiments/vpn/profile/download',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/profile/download',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/profile/download', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/profile/download', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/profile/download");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/profile/download", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/experiments/vpn/profile/download

Download User Profile

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getUserProfileLinksEphemeral

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/experiments/vpn/profile/ephemeral

Get User Profile Links Ephemeral

TODO - Not used in Floatplane code yet.

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

getServerList

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/server/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/server/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v3/experiments/vpn/server/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/server/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/server/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/server/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/server/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/server/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v3/experiments/vpn/server/list

Get Server List

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

CreatorAdministration

addCreatorModeratorByPath

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creators/{creator}/administration/moderators/add

Add Creator Moderator By Path

TODO

Parameters

Name In Type Required Description
creator path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeCreatorModeratorAdmin

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/remove',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creator/administration/moderators/remove',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creator/administration/moderators/remove', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/administration/moderators/remove", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creator/administration/moderators/remove

Remove Creator Moderator

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

removeCreatorModeratorByPath

Code samples

# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove',
{
method: 'POST',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.post 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.post('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v2/creators/{creator}/administration/moderators/remove

Remove Creator Moderator By Path

TODO

Parameters

Name In Type Required Description
creator path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listModerators

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creator/administration/moderators/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creator/administration/moderators/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/administration/moderators/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creator/administration/moderators/list

List Moderators

TODO

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

listModeratorsByPath

Code samples

# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v2/creators/{creator}/administration/moderators/list

List Moderators By Path

TODO

Parameters

Name In Type Required Description
creator path string true none

Example responses

200 Response

{}

400 Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

401 Response

{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}

403 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}

404 Response

{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}

default Response

{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request - The request has errors and the server did not process it. ErrorModel
401 Unauthorized Unauthenticated - The request was not authenticated to make the request. ErrorModel
403 Forbidden Forbidden - The request was not authenticated to make the request. ErrorModel
404 Not Found Not Found - The resource was not found. ErrorModel
default Default Unexpected response code ErrorModel

Response Schema

Schemas

AuthLoginV2Request

{
"username": "string",
"password": "string",
"captchaToken": "string"
}

Properties

Name Type Required Restrictions Description
username string true none none
password string true none none
captchaToken string false none The Google Recaptcha v2/v3 token to verify the request. On web browsers, this is required. For mobile or TV applications, this is not required only if the User-Agent indicates so (e.g., if the User-Agent contains “CFNetwork” in its value). Otherwise, the application would have to supply a valid captcha token, which can be difficult to obtain dynamically in some scenarios.

AuthLoginV2Response

{
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"needs2FA": true
}

Properties

Name Type Required Restrictions Description
user UserModel false none Represents some basic information of a user (id, username, and profile image).
needs2FA boolean true none If true, the user has not yet been authenticated, and will need to submit the 2FA token to complete authentication.

CheckFor2faLoginRequest

{
"token": "string"
}

Properties

Name Type Required Restrictions Description
token string false none The two-factor authentication token that the user inputs to complete the login process.

CdnDeliveryV2Response

{
"cdn": "http://example.com",
"strategy": "string",
"resource": {
"uri": "string",
"data": {
"qualityLevels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0
}
],
"qualityLevelParams": {
"property1": {
"token": "string"
},
"property2": {
"token": "string"
}
},
"token": "string"
}
}
}

Properties

Name Type Required Restrictions Description
cdn string(uri) true none The domain of the CDN server to use.
strategy string true none none
resource object true none none
» uri string false none The path to attach to the cdn property above. Replace the items surrounded by curly braces ({, }) with the appropriate values from the data property, depending on chosen resolution. First, choose the qualityLevel, then use the given token from the qualityLevelParam for that qualityLevel’s name.
» data object true none none
»» qualityLevels [object] false none none
»»» name string true none Used to identify this level of quality, and to refer to the qualityLevelParams object below by the property key.
»»» width integer true none The video quality’s resolution’s width in pixels.
»»» height integer true none The video quality resolution’s height in pixels.
»»» label string true none The display-friendly version of name.
»»» order integer true none The display order to be shown to the user.
»» qualityLevelParams object false none none
»»» additionalProperties object false none none
»»»» token string true none none
»» token string false none none

PaymentInvoiceListV2Response

{
"invoices": [
{
"id": 0,
"amountDue": 0,
"amountTax": 0,
"attemptCount": 0,
"currency": "string",
"date": "2019-08-24T14:15:22Z",
"dateDue": "2019-08-24T14:15:22Z",
"periodStart": "2019-08-24T14:15:22Z",
"periodEnd": "2019-08-24T14:15:22Z",
"nextPaymentAttempt": "2019-08-24T14:15:22Z",
"paid": true,
"forgiven": true,
"refunded": true,
"subscriptions": [
{
"id": 0,
"subscription": 0,
"periodStart": "2019-08-24T14:15:22Z",
"periodEnd": "2019-08-24T14:15:22Z",
"value": 0,
"amountSubtotal": 0,
"amountTotal": 0,
"amountTax": 0,
"plan": {
"id": "string",
"title": "string",
"creator": {
"id": "string",
"title": "string",
"urlname": "string",
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
}
]
}
]
}

Properties

Name Type Required Restrictions Description
invoices [object] true none none
» id integer true none none
» amountDue number true none none
» amountTax number true none none
» attemptCount integer true none none
» currency string true none none
» date string(date-time) true none none
» dateDue string(date-time)¦null false none none
» periodStart string(date-time) true none none
» periodEnd string(date-time) true none none
» nextPaymentAttempt string(date-time)¦null true none none
» paid boolean true none none
» forgiven boolean true none none
» refunded boolean true none none
» subscriptions [object] false none The subscriptions this invoice is in reference to.
»» id integer true none none
»» subscription number true none none
»» periodStart string(date-time)¦null true none none
»» periodEnd string(date-time)¦null true none none
»» value number true none none
»» amountSubtotal number true none none
»» amountTotal number true none none
»» amountTax number true none none
»» plan object true none none
»»» id string true none none
»»» title string true none none
»»» creator object true none none
»»»» id string true none none
»»»» title string true none none
»»»» urlname string true none none
»»»» icon ImageModel true none none

PlanInfoV2Response

{
"totalSubscriberCount": 0,
"totalIncome": "string",
"plans": [
{
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"title": "string",
"enabled": true,
"featured": true,
"description": "string",
"price": "string",
"priceYearly": "string",
"paymentID": 0,
"currency": "string",
"trialPeriod": 0,
"allowGrandfatheredAccess": true,
"logo": "string",
"creator": "string",
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"userIsSubscribed": true,
"userIsGrandfathered": true,
"enabledGlobal": true,
"interval": "string"
}
]
}

Properties

Name Type Required Restrictions Description
totalSubscriberCount integer false none The total number of subscribers for this creator.
totalIncome string false none The total amount of monthly income for this creator. This field tends to always be $0 for regular users.
plans [object] true none none
» discordRoles [DiscordRoleModel] true none The available roles for the associated Discord servers that are available with this plan.
» createdAt string(date-time) true none none
» updatedAt string(date-time)¦null true none none
» id string true none none
» title string true none none
» enabled boolean true none none
» featured boolean true none none
» description string true none none
» price string true none none
» priceYearly string false none none
» paymentID integer true none none
» currency string true none none
» trialPeriod number true none none
» allowGrandfatheredAccess boolean false none none
» logo string true none none
» creator string true none none
» discordServers [DiscordServerModel] true none none
» userIsSubscribed boolean true none none
» userIsGrandfathered boolean true none none
» enabledGlobal boolean true none none
» interval string true none none

UserInfoV2Response

{
"users": [
{
"id": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
]
}

Properties

Name Type Required Restrictions Description
users [object] true none none
» id string true none none
» user any true none none

oneOf

Name Type Required Restrictions Description
»» anonymous UserModel false none Represents some basic information of a user (id, username, and profile image).

xor

Name Type Required Restrictions Description
»» anonymous UserSelfModel false none none

UserNamedV2Response

{
"users": [
{
"id": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"email": "string",
"displayName": "string"
}
}
]
}

Properties

Name Type Required Restrictions Description
users [object] true none none
» id string true none none
» user UserSelfModel true none none

UserSecurityV2Response

{
"twofactorEnabled": true,
"twofactorBackupCodeEnabled": true
}

Properties

Name Type Required Restrictions Description
twofactorEnabled boolean true none none
twofactorBackupCodeEnabled boolean true none none

CommentV3PostRequest

{
"blogPost": "string",
"text": "string"
}

Properties

Name Type Required Restrictions Description
blogPost string true none The GUID of the blogPost the comment should be posted to.
text string true none The text of the comment being posted.

CommentV3PostResponse

{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"contentReference": "string",
"contentReferenceType": "string",
"text": "string",
"replying": "string",
"postDate": "string",
"editDate": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
}
}

Properties

Name Type Required Restrictions Description
id string true none none
blogPost string true none none
user UserModel true none Represents some basic information of a user (id, username, and profile image).
contentReference string true none none
contentReferenceType string true none none
text string true none none
replying string true none none
postDate string true none none
editDate string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
interactionCounts object true none none
» like integer true none none
» dislike integer true none none

CommentLikeV3PostRequest

{
"comment": "string",
"blogPost": "string"
}

Properties

Name Type Required Restrictions Description
comment string true none The GUID of the comment being liked.
blogPost string true none The GUID of the post the comment is on.

ContentCreatorListV3Response

{
"blogPosts": [
{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": {
"id": "string",
"username": "string"
},
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"videoAttachments": [
"string"
],
"audioAttachments": [
"string"
],
"pictureAttachments": [
"string"
],
"galleryAttachments": [
"string"
]
}
],
"lastElements": [
{
"creatorId": "string",
"blogPostId": "string",
"moreFetchable": true
}
]
}

Properties

Name Type Required Restrictions Description
blogPosts [BlogPostModelV3] true none none
lastElements [ContentCreatorListLastItems] true none Information about paging: what the last ID retrieve is and if more posts can be retrieved afterward for subsequent requests.

ContentCreatorListLastItems

{
"creatorId": "string",
"blogPostId": "string",
"moreFetchable": true
}

Properties

Name Type Required Restrictions Description
creatorId string true none none
blogPostId string false none This may be returned as null if no blog posts for this creator appeared yet on this page of blog posts. However, Floatplane will complain if this is sent with a null value.
moreFetchable boolean true none none

ContentPostV3Response

{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
},
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
]
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"userInteraction": [
"like"
],
"videoAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
],
"audioAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"duration": 0,
"waveform": {
"dataSetLength": 0,
"highestValue": 0,
"lowestValue": 0,
"data": [
0
]
},
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"isAccessible": true
}
],
"pictureAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
],
"galleryAttachments": [
null
]
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
text string true none Text description of the post. May have HTML paragraph (<p>) tags surrounding it, along with other HTML…
type string true none none
tags [string] true none none
attachmentOrder [string] true none none
metadata PostMetadataModel true none none
releaseDate string(date-time) true none none
likes integer true none none
dislikes integer true none none
score integer true none none
comments integer true none none
creator CreatorModelV2Extended true none none
wasReleasedSilently boolean true none none
thumbnail ImageModel false none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
userInteraction UserInteractionModel false none none
videoAttachments [VideoAttachmentModel] false none none
audioAttachments [AudioAttachmentModel] false none none
pictureAttachments [PictureAttachmentModel] false none none
galleryAttachments [any] false none none

Enumerated Values

Property Value
type blogPost

ContentVideoV3Response

{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"blogPosts": [
"string"
],
"timelineSprite": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"userInteraction": [
"like"
],
"levels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0
}
]
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
type string true none none
description string true none none
releaseDate string(date-time) true none none
duration number true none Unit: seconds.
creator string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
isProcessing boolean true none none
primaryBlogPost string true none none
thumbnail ImageModel true none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
blogPosts [string] true none none
timelineSprite ImageModel true none none
userInteraction UserInteractionModel false none none
levels [object] true none none
» name string true none none
» width integer true none none
» height integer true none none
» label string true none none
» order integer true none none

ContentPictureV3Response

{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"userInteraction": [
"like"
],
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"imageFiles": [
{
"path": "http://example.com",
"width": 0,
"height": 0,
"size": 0
}
]
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
type string true none none
description string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
isProcessing boolean true none none
creator string true none none
primaryBlogPost string true none none
userInteraction UserInteractionModel false none none
thumbnail ImageModel true none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
imageFiles [ImageFileModel] true none none

UserActivityV3Response

{
"activity": [
{
"time": "2019-08-24T14:15:22Z",
"comment": "string",
"postTitle": "string",
"postId": "string",
"creatorTitle": "string",
"creatorUrl": "string"
}
],
"visibility": "string"
}

Properties

Name Type Required Restrictions Description
activity [object] true none none
» time string(date-time) true none none
» comment string true none none
» postTitle string false none none
» postId string true none none
» creatorTitle string true none none
» creatorUrl string true none none
visibility string true none none

UserLinksV3Response

{
"property1": {
"url": "http://example.com",
"type": {
"name": "string",
"displayName": "string",
"hostName": "string"
}
},
"property2": {
"url": "http://example.com",
"type": {
"name": "string",
"displayName": "string",
"hostName": "string"
}
}
}

Properties

Name Type Required Restrictions Description
additionalProperties object false none none
» url string(uri) false none The URL the user has configured for this link.
» type object false none none
»» name string false none The code name of this link type.
»» displayName string false none The display-friendly name of this link type.
»» hostName string false none The hostname that should be a part of the URL.

UserNotificationUpdateV3PostRequest

{
"creator": "string",
"property": "contentEmail",
"newValue": true
}

Properties

Name Type Required Restrictions Description
creator string true none none
property string true none Use contentEmail for email notifications, and contentFirebase for push notifications.
newValue boolean true none none

Enumerated Values

Property Value
property contentEmail
property contentFirebase

UserSelfV3Response

{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"email": "string",
"displayName": "string",
"creators": [
null
],
"scheduledDeletionDate": "string"
}

Properties

Name Type Required Restrictions Description
id string true none none
username string true none none
profileImage ImageModel true none none
email string false none none
displayName string false none none
creators [any] false none none
scheduledDeletionDate string false none none

ContentLikeV3Request

{
"contentType": "blogPost",
"id": "string"
}

Properties

Name Type Required Restrictions Description
contentType string true none none
id string true none none

Enumerated Values

Property Value
contentType blogPost

GetCaptchaInfoResponse

{
"v2": {
"variants": {
"android": {
"siteKey": "string"
},
"checkbox": {
"siteKey": "string"
},
"invisible": {
"siteKey": "string"
}
}
},
"v3": {
"variants": {
"invisible": {
"siteKey": "string"
}
}
}
}

Properties

Name Type Required Restrictions Description
v2 object true none none
» variants object true none none
»» android object true none none
»»» siteKey string true none none
»» checkbox object true none none
»»» siteKey string true none none
»» invisible object true none none
»»» siteKey string true none none
v3 object true none none
» variants object true none none
»» invisible object true none none
»»» siteKey string true none none

ErrorModel

{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}

Properties

Name Type Required Restrictions Description
id string true none none
errors [object] true none none
» id string true none none
» name string true none none
» message string false none none
» data object false none none
message string false none none

PaymentAddressModel

{
"id": 0,
"customerName": "string",
"postalCode": "string",
"line1": "string",
"city": "string",
"region": "string",
"country": "string",
"default": true
}

Properties

Name Type Required Restrictions Description
id integer true none none
customerName string true none none
postalCode string true none none
line1 string true none none
city string true none none
region string true none none
country string true none none
default boolean true none none

PaymentMethodModel

{
"id": 0,
"payment_processor": 0,
"default": true,
"card": {
"brand": "string",
"last4": "string",
"exp_month": 0,
"exp_year": 0,
"name": "string"
}
}

Properties

Name Type Required Restrictions Description
id integer true none none
payment_processor integer true none none
default boolean true none none
card object true none none
» brand string true none none
» last4 string true none none
» exp_month integer true none none
» exp_year integer true none none
» name string true none none

CreatorModelV2

{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true
}

Properties

Name Type Required Restrictions Description
id string true none none
owner string true none none
title string true none none
urlname string true none none
description string true none none
about string true none none
category string true none none
cover ImageModel false none none
icon ImageModel true none none
liveStream LiveStreamModel false none none
subscriptionPlans [object] false none none
discoverable boolean true none none
subscriberCountDisplay string true none none
incomeDisplay boolean true none none

CreatorModelV2Extended

{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
},
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous CreatorModelV2 false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» socialLinks SocialLinksModel true none none
» discordServers [DiscordServerModel] true none none

CreatorModelV3

{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
}

Properties

Name Type Required Restrictions Description
id string true none none
owner string true none none
title string true none none
urlname string true none none
description string true none none
about string true none none
category object true none none
» title string true none none
cover ImageModel true none none
icon ImageModel true none none
liveStream LiveStreamModel false none none
subscriptionPlans [SubscriptionPlanModel] true none none
discoverable boolean true none none
subscriberCountDisplay string true none none
incomeDisplay boolean true none none
socialLinks SocialLinksModel true none none

BlogPostModelV3

{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": {
"id": "string",
"username": "string"
},
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"videoAttachments": [
"string"
],
"audioAttachments": [
"string"
],
"pictureAttachments": [
"string"
],
"galleryAttachments": [
"string"
]
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
text string true none Text description of the post. May have HTML paragraph (<p>) tags surrounding it, along with other HTML…
type string true none none
tags [string] true none none
attachmentOrder [string] true none none
metadata PostMetadataModel true none none
releaseDate string(date-time) true none none
likes integer true none none
dislikes integer true none none
score integer true none none
comments integer true none none
creator object true none none
» id string true none none
» owner object true none none
»» id string true none none
»» username string true none none
» title string true none none
» urlname string true none none
» description string true none none
» about string true none none
» category object true none none
»» title string false none none
» cover ImageModel true none none
» icon ImageModel true none none
» liveStream LiveStreamModel false none none
» subscriptionPlans [SubscriptionPlanModel] true none none
» discoverable boolean true none none
» subscriberCountDisplay string true none none
» incomeDisplay boolean true none none
» card ImageModel false none none
wasReleasedSilently boolean true none none
thumbnail ImageModel false none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.
videoAttachments [string] false none none
audioAttachments [string] false none none
pictureAttachments [string] false none none
galleryAttachments [string] false none none

Enumerated Values

Property Value
type blogPost

SubscriptionPlanModel

{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}

Properties

Name Type Required Restrictions Description
id string true none none
title string true none none
description string true none none
price string false none none
priceYearly string false none none
currency string true none none
logo string false none none
interval string true none none
featured boolean true none none
allowGrandfatheredAccess boolean false none none
discordServers [DiscordServerModel] true none none
discordRoles [DiscordRoleModel] true none none

PostMetadataModel

{
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
}

Properties

Name Type Required Restrictions Description
hasVideo boolean true none none
videoCount integer true none none
videoDuration number true none none
hasAudio boolean true none none
audioCount integer true none none
audioDuration number true none none
hasPicture boolean true none none
pictureCount integer true none none
hasGallery boolean true none none
galleryCount integer true none none
isFeatured boolean true none none

VideoAttachmentModel

{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
type string true none none
description string true none none
releaseDate string(date-time) false none none
duration number true none none
creator string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
isProcessing boolean true none none
primaryBlogPost string true none none
thumbnail ImageModel true none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.

PictureAttachmentModel

{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
type string true none none
description string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
isProcessing boolean true none none
creator string true none none
primaryBlogPost string true none none
thumbnail ImageModel true none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.

AudioAttachmentModel

{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"duration": 0,
"waveform": {
"dataSetLength": 0,
"highestValue": 0,
"lowestValue": 0,
"data": [
0
]
},
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"isAccessible": true
}

Properties

Name Type Required Restrictions Description
id string true none none
guid string true none none
title string true none none
type string true none none
description string true none none
duration integer true none none
waveform object true none none
» dataSetLength integer true none none
» highestValue integer true none none
» lowestValue integer true none none
» data [integer] true none none
creator string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
isProcessing boolean true none none
primaryBlogPost string true none none
isAccessible boolean true none If false, the post should be marked as locked and not viewable by the user.

ImageModel

{
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}

Properties

Name Type Required Restrictions Description
width integer true none none
height integer true none none
path string(uri) true none none
childImages [ChildImageModel] false none none

ChildImageModel

{
"width": 0,
"height": 0,
"path": "http://example.com"
}

Properties

Name Type Required Restrictions Description
width integer true none none
height integer true none none
path string(uri) true none none

ImageFileModel

{
"path": "http://example.com",
"width": 0,
"height": 0,
"size": 0
}

Properties

Name Type Required Restrictions Description
path string(uri) true none none
width integer true none none
height integer true none none
size integer true none none

LiveStreamModel

{
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}

Properties

Name Type Required Restrictions Description
id string true none none
title string true none none
description string true none none
thumbnail ImageModel false none none
owner string true none none
streamPath string true none none
offline object true none none
» title string false none none
» description string false none none
» thumbnail ImageModel false none none

SocialLinksModel

{
"property1": "http://example.com",
"property2": "http://example.com"
}

Properties

Name Type Required Restrictions Description
additionalProperties string(uri) false none none

DiscordServerModel

{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}

Properties

Name Type Required Restrictions Description
id string true none none
guildName string true none none
guildIcon string true none none
inviteLink string(uri) true none none
inviteMode string true none none

DiscordRoleModel

{
"server": "string",
"roleName": "string"
}

Properties

Name Type Required Restrictions Description
server string true none none
roleName string true none none

UserModel

{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}

Represents some basic information of a user (id, username, and profile image).

Properties

Name Type Required Restrictions Description
id string true none none
username string true none none
profileImage ImageModel true none none

UserSelfModel

{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"email": "string",
"displayName": "string"
}

Properties

Name Type Required Restrictions Description
id string true none none
username string true none none
profileImage ImageModel true none none
email string false none none
displayName string false none none

ConnectedAccountModel

{
"key": "string",
"name": "string",
"enabled": true,
"iconWhite": "string",
"connectedAccount": {
"id": "string",
"remoteUserId": "string",
"remoteUserName": "string",
"data": {
"canJoinGuilds": true
}
},
"connected": true,
"isAccountProvider": true
}

Properties

Name Type Required Restrictions Description
key string true none Unique identifier for the account type.
name string true none Display-friendly label for the key.
enabled boolean true none Determines if the system allows this account to be connected to.
iconWhite string true none none
connectedAccount object true none none
» id string true none none
» remoteUserId string true none none
» remoteUserName string true none none
» data object true none none
»» canJoinGuilds boolean false none none
connected boolean true none If true, the user is connected and the connectedAccount will have data about the account.
isAccountProvider boolean true none none

CommentModel

{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"contentReference": "string",
"contentReferenceType": "string",
"text": "string",
"replying": "string",
"postDate": "string",
"editDate": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"totalReplies": 0,
"replies": [
{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"contentReference": "string",
"contentReferenceType": "string",
"text": "string",
"replying": "string",
"postDate": "2019-08-24T14:15:22Z",
"editDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"userInteraction": [
"like"
]
}
],
"userInteraction": [
"like"
]
}

Properties

Name Type Required Restrictions Description
id string true none none
blogPost string true none none
user UserModel true none Represents some basic information of a user (id, username, and profile image).
contentReference string true none none
contentReferenceType string true none none
text string true none none
replying string true none none
postDate string true none none
editDate string true none none
likes integer true none none
dislikes integer true none none
score integer true none none
interactionCounts object true none none
» like integer false none none
» dislike integer false none none
totalReplies integer true none none
replies [CommentReplyModel] true none none
userInteraction UserInteractionModel false none none

CommentReplyModel

{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"contentReference": "string",
"contentReferenceType": "string",
"text": "string",
"replying": "string",
"postDate": "2019-08-24T14:15:22Z",
"editDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"userInteraction": [
"like"
]
}

Properties

Name Type Required Restrictions Description
id string true none none
blogPost string true none none
user UserModel true none Represents some basic information of a user (id, username, and profile image).
contentReference string true none none
contentReferenceType string true none none
text string true none none
replying string true none none
postDate string(date-time) true none none
editDate string(date-time)¦null true none none
likes integer true none none
dislikes integer true none none
score integer true none none
interactionCounts object true none none
» like integer false none none
» dislike integer false none none
userInteraction UserInteractionModel false none none

UserNotificationModel

{
"creator": {
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true
},
"userNotificationSetting": {
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"contentEmail": true,
"contentFirebase": true,
"creatorMessageEmail": true,
"user": "string",
"creator": "string"
}
}

Properties

Name Type Required Restrictions Description
creator CreatorModelV2 true none none
userNotificationSetting object true none none
» createdAt string(date-time) true none none
» updatedAt string(date-time)¦null true none none
» id string true none none
» contentEmail boolean true none none
» contentFirebase boolean true none none
» creatorMessageEmail boolean true none none
» user string true none none
» creator string true none none

UserSubscriptionModel

{
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"paymentID": 0,
"interval": "string",
"paymentCancelled": true,
"plan": {
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
},
"creator": "string"
}

Properties

Name Type Required Restrictions Description
startDate string(date-time) true none none
endDate string(date-time)¦null true none none
paymentID integer true none none
interval string true none none
paymentCancelled boolean true none none
plan object true none none
» id string true none none
» title string true none none
» description string true none none
» price string false none none
» priceYearly string false none none
» currency string true none none
» logo string false none none
» interval string true none none
» featured boolean true none none
» allowGrandfatheredAccess boolean false none none
» discordServers [DiscordServerModel] true none none
» discordRoles [DiscordRoleModel] true none none
creator string true none none

FaqSectionModel

{
"faqs": [
{
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"question": "string",
"answer": "string",
"status": "public",
"link": "string",
"order": 0,
"faqSection": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"name": "string",
"description": "string",
"status": "public",
"order": 0
}

Properties

Name Type Required Restrictions Description
faqs [object] true none none
» createdAt string(date-time) true none none
» updatedAt string(date-time)¦null true none none
» id string true none none
» question string true none none
» answer string true none This field may contain HTML that should be rendered.
» status string true none none
» link string true none none
» order number true none none
» faqSection string true none none
createdAt string(date-time) true none none
updatedAt string(date-time)¦null true none none
id string true none none
name string true none none
description string true none none
status string true none none
order number true none none

Enumerated Values

Property Value
status public
status public

UserInteractionModel

[
"like"
]

Properties

None

EdgesModel

{
"edges": [
{
"hostname": "string",
"queryPort": 0,
"bandwidth": 0,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"client": {}
}

Properties

Name Type Required Restrictions Description
edges [EdgeModel] false none none
client object false none none

EdgeModel

{
"hostname": "string",
"queryPort": 0,
"bandwidth": 0,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}

Properties

Name Type Required Restrictions Description
hostname string false none none
queryPort integer false none none
bandwidth integer(int64) false none none
allowDownload boolean false none none
allowStreaming boolean false none none
datacenter object false none none
» countryCode string false none none
» regionCode string false none none
» latitude number false none none
» longitude number false none none